Ich habe eine Hive-Tabelle, wo ich den Bindestrich ('-') durch Unterstrich ('_') ersetzen möchte. Die Beispielabfrage ist als:Wie ersetzen Bindestrich (Strich) in Tabellenname?
CREATE TABLE test_${yearAndMonth} ......
INSERT OVERWRITE TABLE test_${yearAndMonth} ......
Die 'JahrUndMonat' enthält Wert wie: 2017-05; Also möchte ich den Namen des Tabellenwerts als test_2017_05 haben; Der 'YearAndMonth' muss jedoch den Bindestrich-Wert enthalten. na
nicht eingegeben werden erkennen in der Nähe von 'test_' '$' '{' in der Tabelle:
Ich habe mit versucht: regex Zum Beispiel ersetzen:
CREATE TABLE test_${regexp_replace(yearAndMonth, '-', '_')} ......
INSERT OVERWRITE TABLE test_${regexp_replace(yearAndMonth, '-', '_')} ......
Aber ich bin immer Fehler wie mich
Irgendwelche Vorschläge bitte.
Update: in diesem Versuch war so:
CREATE TABLE test_regexp_replace(${yearAndMonth}, "-", "_") ......
INSERT OVERWRITE TABLE test_regexp_replace(${yearAndMonth}, "-", "_") ......
Ich erhalte diese Fehlermeldung: EOF fehlt an '(' in der Nähe von 'test_regexp_replace'
** (1) ** Sie haben ein falsches Verständnis davon, was Hive-Variablen sind. Überprüfen Sie https://StackOverflow.com/questions/42887401/storing-result-of-query-in-hive-variable/42887453#42887453. ** (2) ** Sie müssen die Variablen im richtigen Format übergeben. –