Когда вы загружаете данные в набор данных из БД, никогда не верьте, что данные загружены правильно, пока вы не увидите фактические данные.
В этом случае я мог видеть ds.printSchema
, я мог видеть ds.count().show()
но когда я делал ds.select("cola", "colb")
, он не показывал правильные данные.
Теперь небольшое исследование показало, что я не должен использовать JDB C при загрузке из mem Sql
Я использовал следующее Что было не так . Он может загружать схему, считать, но не фактические данные.
Dataset<Row> ds= spark.read()
.format("jdbc")
.option("user", getDbUser(true))
.option("password", getDbPass(true))
.option("url", h2RawPositions)
.option("dbtable", h2PositionTableName)
.load();
Вместо этого я использовал com.mem sql .spark.connector ( Source ), который работал.
Dataset<Row> gsProducts = spark.read()
.format("com.memsql.spark.connector")
.option("url", memsqlConnection)
.option("dbtable", mamsqlTableName)
.option("query", "select blah, blah frm memSqlTableName")
.load();