用Globbing读取的Spark丢失了分区

时间:2019-08-22 16:19:39

标签: apache-spark hadoop-partitioning

使用Apache Spark,我可以读取分区为的json数据集

sparkSession.read.json("hdfs://data-lake/talbeName/")

在此文件夹中,我有datehour之类的分区,例如:

hdfs://data-lake/talbeName/date=2019-08-21/hour=1
hdfs://data-lake/talbeName/date=2019-08-21/hour=2
hdfs://data-lake/talbeName/date=2019-08-21/hour=3
hdfs://data-lake/talbeName/date=2019-08-21/hour=4
hdfs://data-lake/talbeName/date=2019-08-21/hour=5

hdfs://data-lake/talbeName/date=2019-08-20/hour=1
hdfs://data-lake/talbeName/date=2019-08-20/hour=2
hdfs://data-lake/talbeName/date=2019-08-20/hour=3
hdfs://data-lake/talbeName/date=2019-08-20/hour=4
hdfs://data-lake/talbeName/date=2019-08-20/hour=5

例如,我想使用this question中的hadoop Globing模式,例如,仅加载2019-08-20中的数据以及1、3、5小时:

sparkSession.read.json("hdfs://data-lake/talbeName/date=2019-08-20/hour={1,3,5}")

但是该架构会丢失有关datehour的信息,也就是说,日期和小时列将从数据框中丢失。

我的问题是:如何使用glob加载数据并保留表示分区的列?

0 个答案:

没有答案