spark jdbc partitioncolumns应该被识别为Dataframe分区吗?

s71maibg  于 2021-05-16  发布在  Spark
关注(0)|答案(0)|浏览(193)

我用过 partitionColumn 选项来读取一个3亿行的表,希望为我的etl作业(在spark3.0.1中)实现低内存/磁盘需求。
但是,解释计划在开始/结束处显示:

+- Exchange hashpartitioning[partitionCol#1, 200), true, [id=#201]
   +- *(1) Scan JDBCRelation(table)[numPartitions=200] (partitionCol#1, time#2)...

我本以为在这里洗牌是不必要的,因为 partitionCol 在jdbc选项中指定。
在整个计划中有很多事情要做,但是每个窗口操作都是按分区的 partitionCol 先是其他列。
我试过:
确保我的列声明为非null(因为我看到 Sort[partitionCol#1 ASC NULLS FIRST...] 被注射,认为这可能是一个问题)
正在检查Dataframe分区: jdbcDF.rdd.partitionerNone (这似乎证实了这一点不被理解)
如何连接两个jdbc表并避免交换?导致DataSourceV2分区报告接口(在2.3.1中修复),但这可能不会扩展到jdbc加载?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题