2016-03-24 8 views
1

Ich habe den folgenden Code ..Wie SELECT mit Spaltenname, der zweimal in DataFrame erscheint?

DataFrame addressDF = sqlContext.read().parquet(addressParquetPath); 
DataFrame propertyDF = sqlContext.read().parquet(propertyParquetPath); 

DataFrame joinedFrame = addressDF.join(propertyDF, propertyDF.col("LOCID").equalTo(addressDF.col("locid")), "left"); 

joinedFrame.registerTempTable("joinedFrame"); 
DataFrame joinedFrameSelect = sqlContext.sql("SELECT LOCID,AddressID FROM joinedFrame"); 

im Select LOCID zweimal aufgeführt ist, wie kann ich die LOCID von Adresse statt Eigenschaft auswählen.

Kann ich Select auf dem Datenrahmen nach Spaltenindex ausführen?

+0

Sie sollten die Verwendung der DataFrame-API zur Auswahl, z. 'joinedFrame.select (" LOCID "," AddressID ")'. –

Antwort

2

ich in der Regel die Spalte umbenennen - Sie können entweder versuchen:

...join(propertyDF.withColumnRenamed("LocID", "LocID_R"), ... 

Oder wenn Sie in einem Rutsch für eine DataFrame alle Spaltennamen ändern - wie ein _R für „Recht hinzufügen "auf jeden Namen - Sie können dies versuchen:

df.toDF(df.columns.map(_ + "_R"):_*) 

Dies ist nützlich, wenn Sie einen DataFrame auf sich selbst zurück beitreten.

Verwandte Themen