2017-10-11 53 views
0

表格只有String列作为主列EMPLOYEE_ID如何对其进行分区。我们能否将String列设置为partitionColumn?

val destination = spark.read.options(options).jdbc(options("url"), options("dbtable"), "EMPLOYEE_ID", P00100001, P00100005000000, 10, new java.util.Properties()).rdd.map(_.mkString(","))

是否有任何其他方式来阅读JDBC表并对其进行处理。

回答

1

这是不可能的。这里只能使用整数列。如果您的数据库支持rowid的一些变体,该变体是整数或可以转换为整数,则可以在查询中提取它(伪代码):

(SELECT CAST(rowid AS INTEGER), * FROM TABLE) AS tmp 
+0

'set @row_num = 0; SELECT @row_num:= @row_num + 1 as row_number,s。* FROM source s;'这个查询给出了行号和表数据,但是如何执行这个语句'set @row_num = 0;和SELECT max(@row_num)作为row_number;'设置@rom_num = 0并从spark中获取上限值。 – Vignesh

相关问题