2017-02-23 2 views
1

Ich habe eine Spark-Anwendung, die perfekt auf Hive partitionierte Tabelle geschrieben hat. Ich habe zwei neue Spalten im Dataframe hinzugefügt, die ich in Hive beibehalten habe, und es hat aufgehört, in Hive zu schreiben, und hat stillschweigend keine Zeilen eingefügt.Spark schreibt nicht in Hive

Ich habe einen DF3 = DF1.join(DF2, where(...), "inner"). Ich beharre DF3. Die Protokollausgabe des Joins wird angezeigt, kein Fehlerprotokoll.

  1. In DF3 werden alle Spalten von DF1 und DF2 automatisch kommen?

  2. Ich habe 2 neue Spalten hinzugefügt, die ich von DF2 im Hive-Schema bekomme, und die Reihenfolge wird zwischen Code und Hive-Schema beibehalten (d. H. Direkt nach dem letzten Col an beiden Stellen). Irgendwelche Gedanken, warum es nicht in Bienenstock schreibt?

+0

mit Haben Sie Ihren Datenrahmen und Ihre hive Tabelle beschrieben und sie verglichen? – Andrew

+0

Ja, sie sehen gut aus. Ist diese Verknüpfung korrekt? Offenbar hängt es hier: DataFrame DFJoin = DF1.join (DF2, DF1.col ("Gerät"). EqualTo (DF2.col ("id")). Oder (DF1.col ("Gerät"). EqualTo (DF2.col ("new_id"))) "inner"); – Mark

Antwort

0

Versuchen Sie, den Bienenstock Metadaten erfrischend durch eine der folgenden

MSCK REPAIR TABLE 
REFRESH [db_name.]table_name 
INVALIDATE METADATA [table_name] 
Verwandte Themen