通过spark phoenix连接器连接到hbase

rwqw0loc  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(554)

我正在尝试通过sparksql连接器加载hbase表。我能够得到表的模式

val port = s"${configuration.get(ZOOKEEPER_CLIENT_PORT, "2181")}"
 val znode = s"${configuration.get(ZOOKEEPER_ZNODE_PARENT, "/hbase")}"
 val zkUrl = s"${configuration.get(ZOOKEEPER_QUORUM, "localhost")}"
 val url = s"jdbc:phoenix:$zkUrl:$port:$znode"
 val props = new Properties()
 val table ="SOME_Metrics_Test"
 props.put("driver", "org.apache.phoenix.jdbc.PhoenixDriver")
 val df = spark.read.jdbc(url, getEscapedFullTableName(table), props)

如果我执行df.printschema,我可以获取表的模式

scala> df.printSchema
root
 |-- PK: string (nullable = false)
 |-- status: string (nullable = true)
 |-- other_Status: string (nullable = true)

但当我这么做的时候 df.show 我得到这个错误:

org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=SOME_Metrics_Test
  at org.apache.phoenix.query.ConnectionQueryServicesImpl.getAllTableRegions(ConnectionQueryServicesImpl.java:542)
  at org.apache.phoenix.iterate.BaseResultIterators.getParallelScans(BaseResultIterators.java:480)

知道为什么会出现这个错误吗?我能做些什么来解决它?在启动Spark壳时,我添加了 phoenix-4.7.0-HBase-1.1-client-spark.jar 以及 hbase-site.xml 在spark shell命令中。

7dl7o3gd

7dl7o3gd1#

试试这个,

val phoenixDF = spark.read.format("org.apache.phoenix.spark")
      .option("table", "my_table") 
      .option("zkUrl", "0.0.0.0:2181") 
      .load()

相关问题