使用Apache Spark,我可以读取分区为的json数据集
sparkSession.read.json("hdfs://data-lake/talbeName/")
在此文件夹中,我有date
和hour
之类的分区,例如:
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}")
但是该架构会丢失有关date
和hour
的信息,也就是说,日期和小时列将从数据框中丢失。
我的问题是:如何使用glob加载数据并保留表示分区的列?