Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 使用union()组合按不同字段分区的历史数据和实时数据_Apache Spark - Fatal编程技术网

Apache spark 使用union()组合按不同字段分区的历史数据和实时数据

Apache spark 使用union()组合按不同字段分区的历史数据和实时数据,apache-spark,Apache Spark,我对传感器数据进行了流式摄取,其中数据被保存到S3,并按时间(年/月/日)进行分区。我把这里叫做着陆区 然后,我有一个周期性的批处理过程,从着陆区获取最新数据,并将其保存到S3中的另一个数据集中,该数据集由另一组键进行分区。这种分区是出于性能原因;用户通常按分区键进行过滤,以便在查询时,将需要从磁盘检索的数据量降至最低。我把这里叫做分析区 我现在有一个用户需要查询登陆区和分析区的数据,也就是说,他们需要最新的可用数据 union()是否适合连接具有相同列但由不同字段分区的数据集?例如 //历史数

我对传感器数据进行了流式摄取,其中数据被保存到S3,并按时间(年/月/日)进行分区。我把这里叫做着陆区

然后,我有一个周期性的批处理过程,从着陆区获取最新数据,并将其保存到S3中的另一个数据集中,该数据集由另一组键进行分区。这种分区是出于性能原因;用户通常按分区键进行过滤,以便在查询时,将需要从磁盘检索的数据量降至最低。我把这里叫做分析区

我现在有一个用户需要查询登陆区和分析区的数据,也就是说,他们需要最新的可用数据

union()
是否适合连接具有相同列但由不同字段分区的数据集?例如

//历史数据包含截至但不包括2018年、10月、1日的数据
//assetID是一个分区字段
historicalDF=spark.sql(“从历史中选择*,其中assetID=123”)
//年、月和日是分区字段
liveDF=spark.sql(
“”“从live中选择*
其中年=2018,月=10,日=1,资产=123“”)
allDF=历史数据联合(liveDF)
union()是否适合连接具有相同列但由不同字段分区的数据集

为什么不呢?一旦数据加载了谓词,所有通过分区修剪(具有分区表的主要优点)进行优化的机会都已经被利用了

您得到的只是一个与其他任何数据帧一样的
DataFrame
,没有分区器集。除了担心长的沿袭(并且有如此短的管道,没有理由这么做),
union
就可以了