我想在现有数据集中添加一个新列作为数组。这是我现有的数据集。
+----------------------+-------------------+
|col 1 |col2 |
+----------------------+-------------------+
|val1 |a |
|val2 |b |
|val3 |c |
--------------------------------------------
我有这个静态数据
public static final String Dates = "2021-07-06,2021-07-07,2021-07-08";
+----------------------+-------------------+----------------------------------------+
|col 1 |col2 | col3 |
+----------------------+-------------------+-----------------------------------------
|val1 |a | [2021-07-06, 2021-07-07, 2021-07-08] |
|val2 |b | [2021-07-06, 2021-07-07, 2021-07-08] |
|val3 |c | [2021-07-06, 2021-07-07, 2021-07-08] |
-------------------------------------------------------------------------------------
Column[] new_data =
Arrays.asList(Dates.split(",")).stream().map(functions::lit).toArray(Column[]::new);
data.withColumn("col3",array(new_data));
data
.withColumn("col3",lit(dates)) # add your string
.withColumn("col3",split(col("col3"),",")) # Split your string
现在我得到了想要的结果。之后,我应用explode()
,它会将col3值分配到每一行。
.withColumn("col3",explode("col3"))
我就像这样
+----------------------+-------------------+----------------------------------------+
|col 1 |col2 | col3 |
+----------------------+-------------------+-----------------------------------------
|val1 |a | 2021-07-06 |
|val2 |b | 2021-07-06 |
|val3 |c | 2021-07-06 |
|val1 |a | 2021-07-07 |
|val2 |b | 2021-07-07 |
|val3 |c | 2021-07-07 |
|val2 |b | 2021-07-08 |
|val3 |c | 2021-07-08 |
-------------------------------------------------------------------------------------
从这个结果数据集中,我基于col3&col1创建了新列col4(如果col3日期大于特定日期&col1值大于某个值,则col4值为true,否则为false)。
data.withColumn("col4",when("col3".gt(Passing_one_date).and("col1".gt(lit(123))),lit(true))).otherwise(lit(false)));
+----------------------+-------------------+----------------------------------------+----------------
|col 1 |col2 | col3 | Col4 |
+----------------------+-------------------+----------------------------------------------------------
|val1 |a | 2021-07-06 | true |
|val2 |b | 2021-07-06 | false |
|val3 |c | 2021-07-06 | true |
|val1 |a | 2021-07-07 | true |
|val2 |b | 2021-07-07 | false |
|val3 |c | 2021-07-07 | true |
|val1 |a | 2021-07-08 | true |
|val2 |b | 2021-07-08 | false |
|val3 |c | 2021-07-08 | true |
------------------------------------------------------------------------------------------------------
data.filter("col4"); -> Selecting true values only
+----------------------+-------------------+----------------------------------------+----------------
|col 1 |col2 | col3 | Col4 |
+----------------------+-------------------+----------------------------------------------------------
|val1 |a | 2021-07-06 | true |
|val3 |c | 2021-07-06 | true |
|val1 |a | 2021-07-07 | true |
|val3 |c | 2021-07-07 | true |
|val1 |a | 2021-07-08 | true |
|val3 |c | 2021-07-08 | true |
------------------------------------------------------------------------------------------------------
data
.withColumn("col3",lit(dates)) // add your string
.withColumn("col3",split(col("col3"),",")) // Split your string
回答第二部分:
data.drop("col3").distinct()
我用的是PySpark,我有一个Spark数据框架,里面有一堆数字列。我想添加一列,它是所有其他列的总和。 假设我的数据帧具有列“a”、“b”和“c”。我知道我能做到: 问题是,我不想单独键入每列并添加它们,尤其是如果我有很多列。我希望能够自动执行此操作,或者通过指定要添加的列名列表来执行此操作。有其他方法吗?
我有一个如下的数据帧: 我想将其转换为如下内容: B中重复的值是列名称,其值在C列中。我希望它们是数据帧的列 事实上,数据集是通过展平一棵树创建的,其中有更多的列,每个列都是一个内部节点。第一列是根,C是叶 以下是我的一些尝试: 然而,它不起作用。
问题内容: 我正在使用PySpark,并且有一个带有一堆数字列的Spark数据框。我想添加一列,它是所有其他列的总和。 假设我的数据框具有列“ a”,“ b”和“ c”。我知道我可以这样做: 问题是我不想单独键入每列并添加它们,尤其是当我有很多列时。我希望能够自动执行此操作,或者希望通过指定要添加的列名列表来执行此操作。还有另一种方法吗? 问题答案: 这并不明显。我看不到spark Datafra
问题内容: TL; DR:如何在ModelForm中为ForeignKey添加“添加新”按钮? 长版:我在项目中使用Django 1.7。我的models.py中有这两个模型 [省略了一些其他不相关的字段] 我正在使用ModelForm用新命令填充数据库,如下所示: Django在为客户字段添加下拉菜单方面做得很好,并在其中添加了来自客户的条目。不过,我想拥有一个“添加新客户”链接/按钮/以便在添
问题内容: 我有一个形状为(X,Y)的Pandas数据框对象,如下所示: 还有一个形状为(X,Z)的numpy稀疏矩阵(CSC),看起来像这样 如何将矩阵中的内容添加到新命名列中的数据框中,以使数据框最终像这样: 请注意,数据框现在具有形状(X,Y + 1),并且矩阵中的行是数据框中的元素。 问题答案: import numpy as np import pandas as pd import s
我有一个Spark DataFrame,我正在尝试基于以前的列创建一个新列,但对我来说,困难的是我已经按行计算了列的值。例如: 列1 |列2 |列3 1 | 2 | 3 4|5|0 3 | 1 | 1 因此,我想要一个新列,每行具有表达式 max(col1, col2, col3)的列名。所以,所需的输出: Col1 |Col2 |Col3 |Col4 1|2|3|'col3' 4|5|0|'co