1

Ich verwende Spark 2.1.0 und verwende Java SparkSession, um meine SparkSQL auszuführen. Ich versuche, eine Dataset<Row> mit dem Namen 'ds' zu speichern, die in einer Hive-Tabelle mit dem Namen schema_name.tbl_name im Überschreibmodus gespeichert wird. Aber wenn ich die unten Aussage leite wirdSpark-Datenframe SaveAsTable schneidet keine Daten aus der Hive-Tabelle

ds.write().mode(SaveMode.Overwrite) 
.option("header","true") 
.option("truncate", "true") 
.saveAsTable(ConfigurationUtils.getProperty(ConfigurationUtils.HIVE_TABLE_NAME)); 

die Tabelle nach dem ersten Lauf fallen gelassen zu werden. Wenn ich es erneut durchführe, wird die Tabelle mit den geladenen Daten erstellt.

Auch mit der Option truncate konnte das Problem nicht gelöst werden. Spricht saveAsTable die Daten ab, anstatt die Tabelle zu löschen/zu erstellen? Wenn ja, wie ist es in Java richtig?

Antwort

Verwandte Themen