如何使用varchar数据类型的partitionColumn在scala spark上读取表?

问题描述 投票:0回答:1

是否可以给varchar数据类型的partitionColumn?我要读取的表没有主键,并且所有列都是varchar数据类型。有什么方法可以将partitionColumn作为varchar类型从jdbc读取?

var finaldataframe = spark.read.format("jdbc")
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
.option("database",db)
.option("url", url)
.option("dbtable", table_name)
.option("numPartitions", partitions)
.option("partitionColumn", pm_key)
.option("lowerbound", w_minLogID)
.option("upperbound", w_maxLogID)
.load() 

火花文档https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html表示:

partitionColumn必须是有关表中的数字,日期或时间戳列。

但是有一些解决方法吗?

sql-server scala apache-spark jdbc
1个回答
0
投票

即使类型为varchar,数值也可能是数字,您可以应用转换函数将其转换为数字。

分区列不能为非数值,因为Spark会对行进行计数,然后将行划分为多个范围,然后使用多个执行程序来下载不同范围的数据。

© www.soinside.com 2019 - 2024. All rights reserved.