Spark JDBC仅使用列名

时间:2017-03-16 19:31:04

标签: scala apache-spark jdbc hive

我正在尝试使用spark JDBC连接到HiveTable,使用以下代码:

val df = spark.read.format("jdbc").
  option("driver", "org.apache.hive.jdbc.HiveDriver").
  option("user","hive").
  option("password", "").
  option("url", jdbcUrl).
  option("dbTable", tableName).load()

df.show()

但我得到的回报只是一个带有修改列名称的空数据框,如下所示:

--------------|---------------|
tableName.uuid|tableName.name |
--------------|---------------|

我试图以很多方式阅读数据框架,但它总是会产生相同的结果。 我正在使用JDBC Hive Driver,而这个HiveTable位于EMR集群中。代码也在同一个集群中运行。 任何帮助将非常感激。 谢谢大家。

1 个答案:

答案 0 :(得分:0)

请在选项中设置fetchsize它应该有效。

Dataset<Row> referenceData
            = sparkSession.read()
            .option("fetchsize", "100")
            .format("jdbc")
            .option("url", jdbc.getJdbcURL())
            .option("user", "")
            .option("password", "")
            .option("dbtable", hiveTableName).load();