如何将存储在 HDFS 中包含行的文本文件转换为 Pyspark 中的数据框?
Posted
技术标签:
【中文标题】如何将存储在 HDFS 中包含行的文本文件转换为 Pyspark 中的数据框?【英文标题】:How can I convert a text file stored in HDFS containing Rows into a Dataframe in Pyspark? 【发布时间】:2017-11-07 12:40:37 【问题描述】:我正在使用 Pyspark,最近将数据帧作为文本文件存储在 HDFS 中,如下所示:
df.rdd.repartition(1).saveAsTextFile(path)
文件创建成功,但内容格式如下:
Row(APP_PRESS=0.8322056773315432, LINE_PRESS=0.0, POSITION=324.17885120541024, SH_SP=-1.610030115550595, TEMP=24.300001144400007, TRIGGER=4.0869775365401934e-19, V_IND=98.36323547359974)
Row(APP_PRESS=0.8025359920151738, LINE_PRESS=0.0, POSITION=324.12892475616513, SH_SP=1.8780468896210554, TEMP=24.300001144399893, TRIGGER=-1.7645281682240943e-19, V_IND=98.36323547359977)
...
现在,我要做的是将这些数据加载到 Pyspark 的数据帧中,只是为了获得与之前保存的数据帧相同的数据帧('df')。
我该怎么做?
【问题讨论】:
【参考方案1】:试试这样的:
df=sc.textFile(...).toDF()
但您可以通过将上面的代码修改为:
df.rdd.repartition(1).toDF()
然后保存。
【讨论】:
当我尝试选项“df=sc.textFile(...).toDF()”时,我收到错误消息:TypeError: Can not infer schema for type:df.write.save(path)
并在保存后加载数据帧我必须使用哪个命令?以上是关于如何将存储在 HDFS 中包含行的文本文件转换为 Pyspark 中的数据框?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 txt 文件转换为 parquet 文件并将其加载到 hdfs table-pyspark
是否有将存储在 HDFS 中的数据转换为 JSON 的直接方法?