在Spark中同时阅读几个镶木地板文件

时间:2015-05-24 07:38:05

标签: apache-spark parquet

我可以使用*(星号):

同时阅读几个json文件
sqlContext.jsonFile('/path/to/dir/*.json')

有没有办法对镶木地板做同样的事情?明星不起作用。

4 个答案:

答案 0 :(得分:14)

仅供参考,您还可以:

  • 使用通配符* sqlContext.read.parquet("/path/to/dir/part_*.gz")

  • 读取镶木地板文件的子集
  • 通过明确指定sqlContext.read.parquet("/path/to/dir/part_1.gz", "/path/to/dir/part_2.gz")

  • 来阅读多个镶木地板文件

答案 1 :(得分:7)

请参阅spark jira上的this issue。从1.4开始支持它。

如果不升级到1.4,您可以指向顶级目录:

sqlContext.parquetFile('/path/to/dir/')

将加载目录中的所有文件。或者,您可以使用HDFS API查找所需的文件,并将它们传递给parquetFile(它接受varargs)。

答案 2 :(得分:3)

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)

答案 3 :(得分:0)

供读取:提供文件的路径和'*'

示例

pqtDF=sqlContext.read.parquet("Path_*.parquet")