2016-01-20 3 views
-2

Я хочу получить доступ к таблице, которая уже присутствует в SAP HANA из Spark-оболочки с использованием SAP HANA Vora.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

им с помощью искры оболочки и выполнения этой команды vc.sql (S ""» CREATE TABLE ztemptest1 ИСПОЛЬЗОВАНИЯ com.sap.spark.hana OPTIONS ( пути "ztemptest1", хозяина "$ {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 пусто) и воссоздать его с помощью команды, которую вы опубликовали (которая не содержит информации о столбцах).

+0

Спасибо, ошибка разрешается – Albert