gpt4 book ai didi

python - PySpark 中的 mkString 等价物是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:15 27 4
gpt4 key购买 nike

我正在将数据帧转换为管道分隔值并将其写入 Spark shell (scala) 中的文件。但我对 PySpark 方面一无所知。非常感谢您的帮助。

特别是我不知道如何用'|'连接每一列

这是scala版本

scala> val stgDF = spark.read.table("tbl")
stgDF: org.apache.spark.sql.DataFrame = [name: string, num: int]

scala> stgDF.map(line => line.mkString("|")).take(2) //How do I do in PySpark?
res0: Array[String] = Array(spark|2001, yarn|2002)

scala> val tmp = stgDF.map(line => line.mkString("|")).rdd
tmp: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[20] at rdd at <console>:25

scala> tmp.saveAsTextFile("stgDF")

最佳答案

像这样:

stgDF.rdd.map(lambda line: "|".join([str(x) for x in line]))

解释:

'|'.join 等同于 Scala 中的 mkString - 它以列表作为参数,然后连接列表中的元素,分隔符为 '|'。列表理解 [str(x) for x in line] 只是在串联之前将 line 的所有元素转换为字符串。

关于python - PySpark 中的 mkString 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47019662/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com