mysql - 如何在不知道数据库表模式的情况下按分区加载到 spark

标签 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()

最佳答案

您必须知道的是 名称,在本例中为“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/

相关文章:

php - 使用序列化数组搜索表

php - 使用用户名或电子邮件登录

apache-spark - Spark ML 朴素贝叶斯用概率预测多个类别

php - mySQL 数据库 - 每 15 分钟将某些列重置为 '0'

PHP-无法从数据库下载.pdf文件,文件内容存储在mysql数据库中

mysql - 如何根据字符串的长度查询字符串

java - 如何在Java中使用Column.isin?

java - 使用 SPARK 从 zip 到 seq

scala - Spark 1.6 : drop column in DataFrame with escaped column names

scala - 什么是 Spark 流中的饥饿场景?