gpt4 book ai didi

python - Pyspark 将 rdd 转换为带有 null 的数据帧

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:23 31 4
gpt4 key购买 nike

我正在使用 pyspark (1.6) 和 elasticsearch-hadoop (5.1.1)。我通过以下方式将 Elasticsearch 中的数据转换为 rdd 格式:

es_rdd = sc.newAPIHadoopRDD(                                               
inputFormatClass="org.elasticsearch.hadoop.mr.EsInputFormat",
keyClass="org.apache.hadoop.io.NullWritable",
valueClass="org.elasticsearch.hadoop.mr.LinkedMapWritable",
conf=es_read_conf)

这里 es_read_conf 只是我的 ES 集群的字典,作为 sc SparkContext 对象。这工作正常,我得到了很好的 rdd 对象。

我想使用

将其转换为数据框
df = es_rdd.toDF()

但我收到错误:

ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling

为 toDF 方法指定样本大小会导致相同的错误。据我了解,发生这种情况是因为 pyspark 无法确定每个字段的类型。我知道我的elasticsearch集群中有一些字段都是空的。

将其转换为数据框的最佳方法是什么?

最佳答案

它告诉 Spark 您要转换的数据类型的最佳方式。请参阅 createDataFrame 的文档第五个示例(内部带有 StructType 的示例)

关于python - Pyspark 将 rdd 转换为带有 null 的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41634217/

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