pyspark-从目录中读取每个文件的json并将其放入自己的Dataframe中

cfh9epnr  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(413)

我想为目录中找到的每个文件创建一个Dataframe

每个文件中的json如下所示:

[{
    "a": "Need Help",
    "b": 6377,
    "c": "Member",
    "d": 721,
    "timestamp": 1590990807.475662
  },
  {
    "a": "Need Help",
    "b": 6377,
    "c": "Member",
    "d": 721,
    "timestamp": 1590990807.475673
  },
  {
    "a": "Need Help",
    "b": 6377,
    "c": "Member",
    "d": 721,
    "timestamp": 1590990807.475678
  }]

我可以使用以下代码:

rdd = sparkSession.sparkContext.wholeTextFiles("/content/sample_data/test_data")
dict = rdd.collectAsMap()
for row,value in dict.items():
 df = spark.read.json(row)
 df.show()

有没有更好的方法达到同样的效果?提前谢谢。

hjzp0vay

hjzp0vay1#

我认为创建第一个rdd是多余的,为什么不在目录中的文本文件上迭代并为每个文件创建一个Dataframe呢?

import glob

path = /content/sample_data/test_data

all_files = glob.glob(path + "/*.txt")

for filename in all_files:
    df = spark.read.json(filename)
    df.show()

相关问题