gpt4 book ai didi

python - Spark RDD 到 DataFrame python

转载 作者:IT老高 更新时间:2023-10-28 22:17:08 24 4
gpt4 key购买 nike

我正在尝试将 Spark RDD 转换为 DataFrame。我已经看到将方案传递给的文档和示例sqlContext.CreateDataFrame(rdd,schema) 函数。

但我有 38 个列或字段,这将进一步增加。如果我手动给 schema 指定每个字段信息,那将是一件非常乏味的工作。

有没有其他方法可以在不知道之前列信息的情况下指定架构。

最佳答案

看,

在 Spark 中有两种方法可以将 RDD 转换为 DF。

toDF()createDataFrame(rdd, schema)

我将向您展示如何动态地做到这一点。

toDF()

toDF() 命令提供了将 RDD[Row] 转换为 Dataframe 的方法。关键是,对象 Row() 可以接收 **kwargs 参数。所以,有一种简单的方法可以做到这一点。

from pyspark.sql.types import Row

#here you are going to create a function
def f(x):
d = {}
for i in range(len(x)):
d[str(i)] = x[i]
return d

#Now populate that
df = rdd.map(lambda x: Row(**f(x))).toDF()

通过这种方式,您将能够动态创建数据框。

createDataFrame(rdd, 架构)

另一种方法是创建动态架构。怎么样?

这边:

from pyspark.sql.types import StructType
from pyspark.sql.types import StructField
from pyspark.sql.types import StringType

schema = StructType([StructField(str(i), StringType(), True) for i in range(32)])

df = sqlContext.createDataFrame(rdd, schema)

第二种方式更简洁......

这就是动态创建数据框的方式。

关于python - Spark RDD 到 DataFrame python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699107/

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