我正在尝试使用 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()
最佳答案
您必须知道的是表
名称,在本例中为“s_log”,因此您可以执行此查询:
DESCRIBE s_log;
或
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'databasename' AND TABLE_NAME ='s_log'
关于mysql - 如何在不知道数据库表模式的情况下按分区加载到 spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56769938/