我需要从不是父目录或子目录的多个路径读取拼花地板文件。
例如,
dir1 ---
|
------- dir1_1
|
------- dir1_2
dir2 ---
|
------- dir2_1
|
------- dir2_2
sqlContext。阅读拼花(dir1)
从dir1\u 1和dir1\u 2读取拼花文件
现在,我正在读取每个目录并使用“unionAll”合并数据帧。有没有一种方法可以不使用unionAll从dir1\u 2和dir2\u 1读取拼花地板文件,或者有没有什么奇特的方法可以使用unionAll
谢谢
如果您有列表
文件,您可以执行以下操作:
files = ['file1', 'file2',...]
df = spark.read.parquet(*files)
SQLContext
的parquetFile方法和DataFrameReader
的parque方法都采用多条路径。所以这两种方法中的任何一种都有效:
df = sqlContext.parquetFile('/dir1/dir1_2', '/dir2/dir2_1')
或
df = sqlContext.read.parquet('/dir1/dir1_2', '/dir2/dir2_1')
有点晚了,但我在搜索时发现了这个,它可能会帮助其他人。。。
您还可以尝试将参数列表解压缩到spark。阅读拼花地板()
paths=['foo','bar']
df=spark.read.parquet(*paths)
如果要将几个blob传递到path参数中,这很方便:
basePath='s3://bucket/'
paths=['s3://bucket/partition_value1=*/partition_value2=2017-04-*',
's3://bucket/partition_value1=*/partition_value2=2017-05-*'
]
df=spark.read.option("basePath",basePath).parquet(*paths)
这很酷,因为您不需要列出basePath中的所有文件,而且仍然可以进行分区推断。
则错误如下: AttributeError:“property”对象没有属性“parquet”
如何读取带有条件作为数据帧的分区镶木地板, 这工作得很好, 分区存在的时间为< code>day=1到day=30是否可能读取类似于< code>(day = 5到6)或< code>day=5,day=6的内容, 如果我输入< code>*,它会给出所有30天的数据,而且太大了。
我们正在寻找一种解决方案,以便创建一个外部配置单元表,根据parquet/avro模式从parquet文件中读取数据。 换句话说,如何从拼花/avro模式生成hive表? 谢谢:)
我有AWS胶水ETL作业,每15分钟运行一次,每次在S3中生成一个拼花文件。 我需要创建另一个作业来运行每小时结束,以使用AWS Glue ETL pyspark代码将S3中的所有4个拼花文件合并为1个拼花文件。 有人试过吗?建议和最佳做法? 提前感谢!
我有一个拼花格式的大数据集(大小约1TB),分为2个层次:
我需要从多个目录中读取文件,并处理数据并将其存储到DB中。目前我正在使用块多资源阅读器,它适用于1个目录。但现在我必须从多个目录中读取文件。如何使用Spring批处理来做到这一点