我有以下代码..
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");
Select LocID中的列出两次,我如何选择LocId of Address而不是property。
我可以按列索引在数据框上执行select吗?
答案 0 :(得分:3)
我通常会重命名列 - 您可以尝试:
...join(propertyDF.withColumnRenamed("LocID", "LocID_R"), ...
或者,如果您想一次性更改DataFrame
的所有列名称 - 例如为每个名称添加_R
“右” - 您可以尝试:< / p>
df.toDF(df.columns.map(_ + "_R"):_*)
当您将DataFrame
加入自身时,这非常有用。