Próbuję uruchomić instrukcji INSERT z moim HiveContext, tak:„INSERT INTO ...” z SparkSQL HiveContext
hiveContext.sql('insert into my_table (id, score) values (1, 10)')
1.5.2 Spark SQL Documentation nie jednoznacznie stwierdzić, czy ten jest obsługiwany czy nie, chociaż obsługuje "dynamiczne wstawianie partycji".
Prowadzi to do śledzenia stosu jak
AnalysisException:
Unsupported language features in query: insert into my_table (id, score) values (1, 10)
TOK_QUERY 0, 0,20, 0
TOK_FROM 0, -1,20, 0
TOK_VIRTUAL_TABLE 0, -1,20, 0
TOK_VIRTUAL_TABREF 0, -1,-1, 0
TOK_ANONYMOUS 0, -1,-1, 0
TOK_VALUES_TABLE 1, 13,20, 41
TOK_VALUE_ROW 1, 15,20, 41
1 1, 16,16, 41
10 1, 19,19, 44
TOK_INSERT 1, 0,-1, 12
TOK_INSERT_INTO 1, 0,11, 12
TOK_TAB 1, 4,4, 12
TOK_TABNAME 1, 4,4, 12
my_table 1, 4,4, 12
TOK_TABCOLNAME 1, 7,10, 22
id 1, 7,7, 22
score 1, 10,10, 26
TOK_SELECT 0, -1,-1, 0
TOK_SELEXPR 0, -1,-1, 0
TOK_ALLCOLREF 0, -1,-1, 0
scala.NotImplementedError: No parse rules for:
TOK_VIRTUAL_TABLE 0, -1,20, 0
TOK_VIRTUAL_TABREF 0, -1,-1, 0
TOK_ANONYMOUS 0, -1,-1, 0
TOK_VALUES_TABLE 1, 13,20, 41
TOK_VALUE_ROW 1, 15,20, 41
1 1, 16,16, 41
10 1, 19,19, 44
Czy jest jakiś inny sposób, aby wstawić do tabeli Hive że jest obsługiwane?
Chcę zapisać do istniejącej tabeli. Jak mogę to zrobić? Używam Spark 1.1.0, który nie ma metody zapisu. co mogę zrobić w takim przypadku? –
Czy chcesz zaakceptować odpowiedź, abyśmy mogli zamknąć to pytanie?:) – eliasah
@eliasah Zrobiłem append w metodzie, którą określiłeś, ale kiedy robię zaznaczenie * na stole ula, otrzymuję dołączone wiersze na górze, zamiast na dole – User12345