我想使用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
时,我会收到错误,如下面的屏幕截图所示
答案 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
为空)并使用您发布的命令重新创建它(不提供列信息)。