2016-01-20 203 views
-2

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

我使用这个命令创建的表:

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) 

如果我执行节目表命令它显示的表名,但是当我执行sqlContext.sql("select * from ztemptest").show我得到的错误,如下面的截图

看到

enter image description here

回答

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" 
) 
+0

IM”, 主机 “$ {HANA_HOSTNAME}” , 的dbschema “$ {} HANA_SCHEMA”, 用户 “$ {} HANA_USERNAME”, passwd文件 “$ {} HANA_PASSWORD”, 例如 “$ {} HANA_INSTANCE” ) “”” .stripMargin) – Albert

1

随着HANA数据源(com.sap.spark.hana),您可以查询现有的HANA表或创建HANA新表。如果您想查询现有的表,您可以提供HANA表的列+数据类型信息。如果您没有提供它,模式元数据将自动从HANA查询。
错误表明提供了架构信息(可能是在较早的执行中),该表存在于HANA中,并且Vora中的架构信息与HANA中的表定义不匹配。
您可以删除现有的表定义(show tables为空),并使用您发布的命令(不提供列信息)重新创建它。使用火花壳和执行该命令vc.sql(S “”” CREATE TABLE ztemptest1 USING com.sap.spark.hana OPTIONS( 路径 “ztemptest1

+0

谢谢,错误已解决 – Albert