【问题标题】:Adding values of two column which datatypes are in string format in pyspark在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 求和?

标签: apache-spark pyspark


【解决方案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|
+----+----+------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    相关资源
    最近更新 更多