如何在不知道数据库表架构的情况下按分区加载到spark

时间:2019-06-26 09:53:22

标签: mysql apache-spark

我正在尝试使用JDBC连接将4000万张大表加载到spark中。显然,按分区加载是解决此问题的方法。

问题是我不知道我需要加载的表的架构或要对哪一列进行分区。那么如何从Spark中确定这一点?

val s_log = spark.read.format("jdbc").option("driver", "com.mysql.jdbc.Driver")
.option("url", "jdbc:mysql://impused?user=***&password=***")
.option("dbtable", "s_log")
.option("numPartitions", "500")
.option("partitionColumn", ??? no idea)
.option("lowerbound", ??? no idea)
.option("upperbound", ??? no idea)
.load()

1 个答案:

答案 0 :(得分:-1)

您必须知道的是table名称,在本例中为“ s_log”,因此您可以执行以下查询:

DESCRIBE s_log;

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'databasename' AND TABLE_NAME ='s_log'