【问题标题】:How to access to apache kudu table created from impala using apache spark如何使用 apache spark 访问从 impala 创建的 apache kudu 表
【发布时间】:2017-05-23 22:16:29
【问题描述】:

我下载了 apache kudu 的快速启动虚拟机,并按照示例在此页面中出现https://kudu.apache.org/docs/quickstart.html,实际上我创建了名为“sfmta”的表,但是当我尝试使用访问 kudu 表时spark-shell 加上下面这句话:

val df = spark.sqlContext.read.options(Map("kudu.master" -> "quickstart.cloudera:7051","kudu.table" -> "sfmta")).kudu

我收到此错误

org.apache.kudu.client.NonRecoverableException: The table does not exist: table_name: "sfmta"

我也尝试过指定不同的表名,如“default:sfmta”、“default::sfmta”,结果相同。你能告诉我为什么会这样吗?为什么我无法访问 kudu 表?这是用 impala 创建的吗?

提前致谢。

【问题讨论】:

    标签: apache-spark apache-spark-sql impala apache-kudu


    【解决方案1】:

    在向 kudu 邮件用户组询问后,我终于找到了这个问题的答案。

    http://quickstart.cloudera:8051/tables检查表名后,我可以看到我想查询的表的全名,而不是使用“sfmta”,我应该使用“impala::default.sfmta”,如下所示:

    val df = spark.sqlContext.read.options(Map("kudu.master" -> "quickstart.cloudera:7051","kudu.table" -> "impala::default.sfmta")).kudu
    

    所以在替换表名后它起作用了。

    【讨论】:

      【解决方案2】:

      如果你创建一个数据库(而不是“默认”),表应该是,

      impala:database_name.table_name

      【讨论】:

        【解决方案3】:

        Will 的答案可能有误。更正一个(2 个冒号):

        impala::database_name.table_name
        

        对于默认数据库:

        impala::default.table_name
        

        已使用 CDH 5.1X 和 Spark 1.6.X 进行了测试。我希望这会节省您的时间。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-11-08
          • 1970-01-01
          • 1970-01-01
          • 2015-08-03
          • 1970-01-01
          • 1970-01-01
          • 2015-10-12
          相关资源
          最近更新 更多