本文介绍了如何使用在 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");
在 Select LocID 中列出了两次,我如何选择 Address 而不是属性的 LocId.
in the Select LocID is listed twice, how do i pick the LocId of Address instead of property.
我可以按列索引在数据框上执行选择吗?
Can i execute select on the dataframe by column index?
推荐答案
我通常会重命名该列——您可以尝试:
I usually rename the column -- you can either try:
...join(propertyDF.withColumnRenamed("LocID", "LocID_R"), ...
或者,如果您想一次性更改 DataFrame
的所有列名称 -- 例如为每个名称添加一个 _R
表示正确" --你可以试试这个:
Or if you want to change all of the column names for a DataFrame
in one go -- such as add an _R
for "right" to every name -- you can try this:
df.toDF(df.columns.map(_ + "_R"):_*)
当您将 DataFrame
加入到自身中时,这很有用.
This is useful when you are joining a DataFrame
back onto itself.
这篇关于如何使用在 DataFrame 中出现两次的列名进行 SELECT?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!