在pyspark中添加数据类型为字符串格式的两列的值
Posted
技术标签:
【中文标题】在pyspark中添加数据类型为字符串格式的两列的值【英文标题】:Adding values of two column which datatypes are in string format in pyspark 【发布时间】:2020-01-17 09:52:12 【问题描述】:日志文件为json格式,我将数据提取到pyspark的数据框 有两列的值是 int 但列的数据类型是字符串。
cola|colb
45|10
10|20
预期输出
newcol
55
30
但我得到的输出类似于
4510
1020
我用过的代码
df = .select (F.concat("cola","colb") as newcol).show()
请帮助我如何获得正确的输出。
【问题讨论】:
将列转换为int
,然后使用sum
或+
添加它们。 concat
(concatenate 的缩写)用于添加字符串。
为什么要使用 concat 求和?
【参考方案1】:
>>> from pyspark.sql.functions import col
>>> df.show()
+----+----+
|cola|colb|
+----+----+
| 45| 10|
| 10| 20|
+----+----+
>>> df.printSchema()
root
|-- cola: string (nullable = true)
|-- colb: string (nullable = true)
>>> df.withColumn("newcol", col("cola") + col("colb")).show()
+----+----+------+
|cola|colb|newcol|
+----+----+------+
| 45| 10| 55.0|
| 10| 20| 30.0|
+----+----+------+
【讨论】:
以上是关于在pyspark中添加数据类型为字符串格式的两列的值的主要内容,如果未能解决你的问题,请参考以下文章