【问题标题】:Connecting to HBase through Spark Phoenix Connector通过 Spark Phoenix 连接器连接到 HBase
【发布时间】:2020-11-04 23:57:23
【问题描述】:

我正在尝试通过 spark sql 连接器加载 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 shell 时,我在 spark-shell 命令中添加了 phoenix-4.7.0-HBase-1.1-client-spark.jarhbase-site.xml

【问题讨论】:

    标签: apache-spark hbase phoenix


    【解决方案1】:

    试试这个,

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

    【讨论】:

      猜你喜欢
      • 2013-08-23
      • 2017-03-26
      • 2015-08-04
      • 2017-02-15
      • 2016-11-24
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 2018-09-04
      相关资源
      最近更新 更多