我有一个数据集
+----+-------+
| age| name|
+----+-------+
| 15|Michael|
| 30| Andy|
| 19| Justin|
+----+-------+
现在我想添加一个列,该列的字符串值为
age
加上字符串值为name
,如下所示:
+----+-------+-----------+
| age| name|cbdkey |
+----+-------+-----------+
| 15|Michael| 15Michael|
| 30| Andy| 30Andy |
| 19| Justin| 19Justin |
+----+-------+-----------+
我使用:
df.withColumn("cbdkey",col("age").+(col("name"))).show()
但是新列
cbdkey
的所有值都是null
。那么,我应该怎么做呢?提前谢谢。
另一种方法是在数据帧上编写一个UDF(用户定义函数)调用
val concatUDF = udf {
(age: Int, name: String) => {
age + name
}
}
df.withColumn("cbdkey", concatUDF(col("age"), col("name"))).show()
输出:
+---+-------+---------+
|age| name| cbdkey|
+---+-------+---------+
| 15|Michael|15Michael|
| 30| Andy| 30Andy|
| 19| Justin| 19Justin|
+---+-------+---------+
您可以使用concat
功能:
df.withColumn("cbdkey", concat(col("age"), col("name"))).show
+---+-------+---------+
|age| name| cbdkey|
+---+-------+---------+
| 15|Michael|15Michael|
| 30| Andy| 30Andy|
| 19| Justin| 19Justin|
+---+-------+---------+
如果需要指定自定义分隔符,请使用concat_ws
:
df.withColumn("cbdkey", concat_ws(",", col("age"), col("name"))).show
+---+-------+----------+
|age| name| cbdkey|
+---+-------+----------+
| 15|Michael|15,Michael|
| 30| Andy| 30,Andy|
| 19| Justin| 19,Justin|
+---+-------+----------+
我使用文件路径解析 Spark 数据帧,但现在我想将路径与时间一起作为单独的列添加到生成的数据帧中。下面是一个当前的解决方案(pathToDF 是一个帮助器方法): 我正在尝试做这样的事情,但我不确定如何使用Column添加时间列: 实现它的更好方法是什么? 输入自由度: 当前结果: 预期结果:
问题内容: 我有一个带有Books的QuerySet,我想为每个Book结果添加一个字段。 在原始SQL中,我会写: 如何在Django中实现?我试过了,但似乎并不适合这种东西。 问题答案: 如遇票数可能的值是只有1和-1,你可以使用刚才提到他们总结注释:。 如果还有更多可能的值,则可以通过添加到上述查询中来过滤注释。 如果是更复杂的,你将不得不使用与。
问题内容: 我有一些像这样的数据框: A中值 的 可能范围仅为0到7 。 另外,我有一个8个元素的列表,如下所示: 如果A列中的元素是 n ,我需要将List中的第 n 个元素插入新列,例如’D’。 如何一口气做到这一点而又不遍历整个数据框? 产生的数据框如下所示: 注意:数据框很大,迭代是最后一个选项。但是如果需要的话,我也可以将其他数据结构(如dict)排列在“ List”中的元素上。 问题答
假设我有这样一个数据帧: 我有这样一个函数: 现在,我想根据函数的计算为我的数据帧获取一个新列。 显然,不起作用。 如何添加该列?
在我的scala程序中,我有一个dataframe,其中有两列和(类型都为)。除此之外,我有一个先前定义的对象和一些方法和属性。在这里,我想要使用dataframe的当前值和中的属性向dataframe添加一个新列。 例如,如果我有下面的dataframe: 谢谢你。
问题内容: 我试图基于一个的数据创建“ n” 。我正在检查in的Integer值,并循环执行sql语句以创建与列中一样多的“ n” 。 这是我的代码: 我需要创建“ n”,但我不知道如何在循环之前声明类型并在for内填充。 现有数据类型: 新的数据类型: 问题答案: 您可以创建一个可变列表并填充它: 但是更好的方法(不使用可变数据结构)是将整数列表 映射 到DataFrames列表中: