如何在spark-on-dates中选择哪个分区策略。我在数据框中有一列是2020-02-19格式的日期。写入时应在分区列中指定日期,还是应在表中从日期创建多个列作为dd、mm、yyyy,并在重新分区中指定yyyy、mm、dd列?如果我指定每个分区策略,会出现什么样的问题
kmb7vmvb1#
在一个分区中没有实际的增益中断 date=yyyy-mm-dd 或者在多个分区中 year=yyyy/month=mm/day=dd ,如果必须处理过去10天的数据,将在同一时间给出相同数量的数据。最大的区别在于查询方式或维护数据的方式。使用一个单独的分区,您的生活将很容易为特定的一天编写查询。三天前我要去跑步。或者我需要查询从1月1日到5月1日的日期范围。有一个分区和日期可以让你的生活更轻松。有多个分区很容易进行月度分析,很容易以简单的方式查询整个月份或全年。但是您将失去在一定范围内查询数据的能力。除了每种格式的这些特性之外,从性能的Angular 来看,这不会给您带来任何开销,这两种解决方案将以相同的速度提供数据,因为您不会将数据分解到更小的文件中。我更喜欢一天只用一个隔断来打破,因为从维护的Angular 来看很容易。
date=yyyy-mm-dd
year=yyyy/month=mm/day=dd
1条答案
按热度按时间kmb7vmvb1#
在一个分区中没有实际的增益中断
date=yyyy-mm-dd
或者在多个分区中year=yyyy/month=mm/day=dd
,如果必须处理过去10天的数据,将在同一时间给出相同数量的数据。最大的区别在于查询方式或维护数据的方式。使用一个单独的分区,您的生活将很容易为特定的一天编写查询。三天前我要去跑步。或者我需要查询从1月1日到5月1日的日期范围。有一个分区和日期可以让你的生活更轻松。
有多个分区很容易进行月度分析,很容易以简单的方式查询整个月份或全年。但是您将失去在一定范围内查询数据的能力。
除了每种格式的这些特性之外,从性能的Angular 来看,这不会给您带来任何开销,这两种解决方案将以相同的速度提供数据,因为您不会将数据分解到更小的文件中。我更喜欢一天只用一个隔断来打破,因为从维护的Angular 来看很容易。