2017-01-04 2 views
1

Ich führe Spark Sql auf Bienenstock. Ich muss hinzufügen auto.purge Tabelleneigenschaften beim Erstellen neuer Bienenstock Tabelle. Ich habe versucht, Code unten Optionen hinzufügen, während saveAsTable Methode aufrufen:Spark Sql 1.5 Datenframe saveAsTable Wie fügt man die Eigenschaften der Hive-Tabelle hinzu

inputDF.write.option("auto.purge" -> "true").saveAsTable(hiveTableName) 

Über Codezeile eine Eigenschaft unter MIT SERDEPROPERTIES der Tabelle hinzugefügt. Ich muss diese Eigenschaft unter TBLPROPERTIES Abschnitt der Hive DDL hinzufügen.

+0

Welche Version von Hive verwenden Sie? –

+0

1.2.1 Bienenstock. wenn ich versuchte, die Tabelle xyz zu löschen; spark sql ignorieren spülen und geben Ausnahme Sprichwort kann nicht aus der Verschlüsselungszone löschen. –

+0

Sieht so aus, als ob diese Eigenschaft nicht funktioniert. Fallen Sie genauso wie Sie in Ihrer Frage erwähnt haben? –

Antwort

0

Endlich habe ich eine Lösung gefunden, ich bin mir nicht sicher, ob dies die beste Lösung ist. Spark 1.5 sqlsAsTable-Methode unterstützt die Tabelleneigenschaft leider nicht als Eingabe. Sie erstellen eine neue tableProperties-Map vor der Erstellung der Hive-Tabelle. Auschecken unter Code: https://github.com/apache/spark/blob/v1.5.0/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala

Zum Hinzufügen von Tabelleneigenschaften zu vorhandenen Hive-Tabellen verwenden Sie den Befehl alter table.

Der obige Befehl fügt dem Hive-Meta-Speicher eine Tabelleneigenschaft hinzu. Um eine vorhandene Tabelle innerhalb der Verschlüsselungszone zu löschen, führen Sie den obigen Befehl vor dem Befehl drop aus.

Verwandte Themen