-2

我想使用 SAP HANA Vora 从 Spark-shell 访问 SAP HANA 中已经存在的表。

我使用以下命令创建了表:

sqlContext.sql( s"""
    CREATE TABLE ztemptest 
    USING
      com.sap.spark.hana
    OPTIONS (
      path         "ztemptest",
      host         "${HANA_HOSTNAME}",
      dbschema     "${HANA_SCHEMA}",
      user         "${HANA_USERNAME}",
      passwd       "${HANA_PASSWORD}",
      instance     "${HANA_INSTANCE}"
    )
    """.stripMargin )

如果我执行show table命令,它会显示表名,但是当我执行时,sqlContext.sql("select * from ztemptest").show我会收到如下屏幕截图所示的错误

在此处输入图像描述

4

2 回答 2

1

您还需要提供模式名称。

给出如下代码:

%vora 
CREATE TABLE TABLENAME 
USING com.sap.spark.hana
OPTIONS (
   path "HANATABLENAME",
   dbschema "SCHEMANAME",
   host "HANA SYSTEM HOST NAME",
   instance " INSTANCENUMBER",
   user "USERNAME",
   passwd "PASSWORD"
)
于 2016-01-21T07:25:32.023 回答
1

使用 HANA 数据源 ( com.sap.spark.hana),您可以在 HANA 中查询现有表或在 HANA 中创建新表。如果要查询现有表,可以提供或不提供 HANA 表的列+数据类型信息。如果您不提供它,则会自动从 HANA 查询架构元数据。
该错误表明提供了架构信息(可能在较早的执行中),该表存在于 HANA 中,并且 Vora 中的架构信息与 HANA 中的表定义不匹配。
您能否删除现有的表定义(show tables为空)并使用您发布的命令(不提供列信息)重新创建它。

于 2016-01-26T19:04:49.370 回答