gpt4 book ai didi

python - 在 pyspark 中将 RDD 转换为 Dataframe

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

我正在尝试将我的 RDD 转换为 pyspark 中的 Dataframe。

我的 RDD:

[(['abc', '1,2'], 0), (['def', '4,6,7'], 1)]

我想要 Dataframe 形式的 RDD:

Index Name Number
0 abc [1,2]
1 def [4,6,7]

我试过:

rd2=rd.map(lambda x,y: (y, x[0] , x[1]) ).toDF(["Index", "Name" , "Number"])

但是我遇到了错误

 An error occurred while calling 
z:org.apache.spark.api.python.PythonRDD.runJob.
: org.apache.spark.SparkException: Job aborted due to stage failure:
Task 0 in stage 62.0 failed 1 times, most recent failure: Lost task 0.0
in stage 62.0 (TID 88, localhost, executor driver):
org.apache.spark.api.python.PythonException: Traceback (most recent
call last):

你能告诉我,我哪里错了吗?

更新:

rd2=rd.map(lambda x: (x[1], x[0][0] , x[0][1]))

我有以下形式的 RDD:

[(0, 'abc', '1,2'), (1, 'def', '4,6,7')]

转换为Dataframe:

rd2.toDF(["Index", "Name" , "Number"])

它仍然给我错误:

An error occurred while calling o2271.showString.
: java.lang.IllegalStateException: SparkContext has been shutdown
at org.apache.spark.SparkContext.runJob(SparkContext.scala:2021)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:2050)

最佳答案

RDD.map 采用一元函数:

rdd.map(lambda x: (x[1], x[0][0] , x[0][1])).toDF(["Index", "Name" , "Number"])

所以你不能传递二进制一。

如果要拆分数组:

rdd.map(lambda x: (x[1], x[0][0] , x[0][1].split(","))).toDF(["Index", "Name" , "Number"])

关于python - 在 pyspark 中将 RDD 转换为 Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661434/

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