如何对DataFrame中出现两次的列名执行SELECT



我有以下代码。。

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");

在SelectLocID中列出了两次,我如何选择地址的LocID而不是属性。

我可以通过列索引在数据帧上执行select吗?

我通常重命名列——您可以尝试:

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

或者,如果您想一次性更改DataFrame的所有列名,例如在每个名称中添加一个代表"right"的_R,您可以尝试以下操作:

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

当您将DataFrame连接回自身时,这非常有用。

相关内容

  • 没有找到相关文章

最新更新