Сейчас я запрашивая MySQL из Спарк следующим образом:запросов к базе данных MySQL из Спарк
val sqlContext = new SQLContext(sc)
val dataframe_mysql = sqlContext
.read.format("jdbc").option("driver", "com.mysql.jdbc.Driver")
.option("url", url)
.option("dbtable", "MyTable")
.option("user", "MyUser").option("password", "MyPwd")
.load()
dataframe_mysql.registerTempTable("MyTable")
val lastNames = dataframe_mysql.sqlContext.sql("select lastName from MyTable")
Но это загружает все столбцы из MyTable
, и я не нуждаюсь в том, что (мне нужно только lastName
колонка). (более того, мне нужен запрос соединения sql, и я не хочу загружать все в Spark).
Как заменить строку option("dbtable", "MyTable")
, чтобы указать SQL-запрос вместо таблицы?
Я попытался запрашивая с .option("dbtable", "select lastName from MyTable")
(как я где-то читал), но это не удается с:
MySQLSyntaxErrorException: select lastName from MyTable WHERE 1=0