SAP HANA VORA和Hana CONNECTION

时间:2016-01-20 07:55:17

标签: hana vora

我想使用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时,我会收到错误,如下面的屏幕截图所示

enter image description here

2 个答案:

答案 0 :(得分: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"
)

答案 1 :(得分:1)

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