我在一个目录中有几个包含json数据的txt文件(我只有路径而没有文件名),我需要将它们全部读入一个dataframe。我试过这个:
df=sc.wholeTextFiles("path/*")
但我甚至不能显示数据,我的主要目标是以不同的方式对数据进行查询。
vwkv1x7d1#
而不是 wholeTextFiles (给出键、值对,其中键作为文件名,数据作为值),尝试 read.json 并给出你的目录名spark将把目录中的所有文件读入dataframe。
wholeTextFiles
read.json
df=spark.read.json("<directorty_path>/*") df.show()
来自文档:
wholeTextFiles(path, minPartitions=None, use_unicode=True)
从hdfs、本地文件系统(在所有节点上都可用)或任何hadoop支持的文件系统uri读取文本文件目录。每个文件作为单个记录读取,并以键-值对的形式返回,其中键是每个文件的路径,值是每个文件的内容。注意:小文件是首选,因为每个文件将被完全加载到内存中。
1条答案
按热度按时间vwkv1x7d1#
而不是
wholeTextFiles
(给出键、值对,其中键作为文件名,数据作为值),尝试
read.json
并给出你的目录名spark将把目录中的所有文件读入dataframe。来自文档:
从hdfs、本地文件系统(在所有节点上都可用)或任何hadoop支持的文件系统uri读取文本文件目录。每个文件作为单个记录读取,并以键-值对的形式返回,其中键是每个文件的路径,值是每个文件的内容。
注意:小文件是首选,因为每个文件将被完全加载到内存中。