【发布时间】:2015-08-05 22:05:34
【问题描述】:
我可以使用 *(星号)同时读取几个 json 文件:
sqlContext.jsonFile('/path/to/dir/*.json')
有没有办法为镶木地板做同样的事情?星号不起作用。
【问题讨论】:
标签: apache-spark parquet
我可以使用 *(星号)同时读取几个 json 文件:
sqlContext.jsonFile('/path/to/dir/*.json')
有没有办法为镶木地板做同样的事情?星号不起作用。
【问题讨论】:
标签: apache-spark parquet
仅供参考,您还可以:
使用通配符*sqlContext.read.parquet("/path/to/dir/part_*.gz")读取parquet文件子集
通过显式指定读取多个 parquet 文件sqlContext.read.parquet("/path/to/dir/part_1.gz", "/path/to/dir/part_2.gz")
【讨论】:
InputPath = [hdfs_path + "parquets/date=18-07-23/hour=2*/*.parquet",
hdfs_path + "parquets/date=18-07-24/hour=0*/*.parquet"]
df = spark.read.parquet(*InputPath)
【讨论】:
请参阅 spark jira 上的 this issue。从 1.4 开始支持。
如果不升级到 1.4,您可以指向顶级目录:
sqlContext.parquetFile('/path/to/dir/')
这将加载目录中的所有文件。或者,您可以使用 HDFS API 来查找您想要的文件,并将它们传递给 parquetFile(它接受可变参数)。
【讨论】:
AttributeError: 'SQLContext' object has no attribute 'parquetFile'
对于读取:给出文件的路径和'*'
例子
pqtDF=sqlContext.read.parquet("Path_*.parquet")
【讨论】: