我正在尝试将数据从 RDBMS 加载到 HDFS 上的配置单元表中。我正在通过以下方式读取 RDBMS 表:
val mydata = spark.read
.format("jdbc")
.option("url", connection)
.option("dbtable", "select * from dev.userlocations")
.option("user", usrname)
.option("password", pwd)
.option("numPartitions",20)
.load()
我在执行程序日志中看到option("numPartitions",20)
没有正确给出,并且整个数据都转储到了一个执行程序中。
现在有提供分区列、下限和上限的选项,如下所示:
val mydata = spark.read
.format("jdbc")
.option("url", connection)
.option("dbtable", "select * from dev.userlocations")
.option("user", usrname)
.option("password", pwd)
.option("partitionColumn","columnName")
.option("lowerbound","x")
.option("upperbound","y")
.option("numPartitions",20).load()
仅当我的分区列是数字数据类型时,上述一个才有效。在我正在阅读的表中,它是基于 column 分区的location
。它的整体大小为 5gb,表中有 20 个不同的分区。我在表中有 20 个不同的位置。无论如何我可以根据表的分区列读取分区中的表: location 吗?
谁能告诉我它是否可以实施?