Apache spark 使用union()组合按不同字段分区的历史数据和实时数据
我对传感器数据进行了流式摄取,其中数据被保存到S3,并按时间(年/月/日)进行分区。我把这里叫做着陆区 然后,我有一个周期性的批处理过程,从着陆区获取最新数据,并将其保存到S3中的另一个数据集中,该数据集由另一组键进行分区。这种分区是出于性能原因;用户通常按分区键进行过滤,以便在查询时,将需要从磁盘检索的数据量降至最低。我把这里叫做分析区 我现在有一个用户需要查询登陆区和分析区的数据,也就是说,他们需要最新的可用数据Apache spark 使用union()组合按不同字段分区的历史数据和实时数据,apache-spark,Apache Spark,我对传感器数据进行了流式摄取,其中数据被保存到S3,并按时间(年/月/日)进行分区。我把这里叫做着陆区 然后,我有一个周期性的批处理过程,从着陆区获取最新数据,并将其保存到S3中的另一个数据集中,该数据集由另一组键进行分区。这种分区是出于性能原因;用户通常按分区键进行过滤,以便在查询时,将需要从磁盘检索的数据量降至最低。我把这里叫做分析区 我现在有一个用户需要查询登陆区和分析区的数据,也就是说,他们需要最新的可用数据 union()是否适合连接具有相同列但由不同字段分区的数据集?例如 //历史数
union()
是否适合连接具有相同列但由不同字段分区的数据集?例如
//历史数据包含截至但不包括2018年、10月、1日的数据
//assetID是一个分区字段
historicalDF=spark.sql(“从历史中选择*,其中assetID=123”)
//年、月和日是分区字段
liveDF=spark.sql(
“”“从live中选择*
其中年=2018,月=10,日=1,资产=123“”)
allDF=历史数据联合(liveDF)
union()是否适合连接具有相同列但由不同字段分区的数据集
为什么不呢?一旦数据加载了谓词,所有通过分区修剪(具有分区表的主要优点)进行优化的机会都已经被利用了
您得到的只是一个与其他任何数据帧一样的DataFrame
,没有分区器集。除了担心长的沿袭(并且有如此短的管道,没有理由这么做),union
就可以了