我有三个数据帧,当我加入它时我收到错误.以下是3个数据帧:
名称:r_df第1栏:lab_key第2栏:第2帧
名称:f_df第1栏:lab_key第2栏:光学
名称:m_df第1栏:lab_key第2栏:res
所有三个数据帧都具有相同数量的行250,每个数据帧具有相同的lab_keys.
我的代码看起来像这样:
newDF = r_df.join(f_df, r_df.lab_key == f_df.lab_key).join(m_df, r_df.lab_key == m_df.lab_key).select('r_df.frame', 'f_df.optic', 'm_df.res')
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Py4JJavaError:调用o902.join时发生错误.:org.apache.spark.sql.AnalysisException:引用'lab_key'不明确,可以是:lab_key#1648,lab_key#1954.;
对问题可能不是很有帮助.我试图获得一个包含以下列的数据框:
第1栏:lab_key第
2 栏:第
3 栏:第4栏:第4栏
:res
你能帮我加入这三个数据框吗?
这是因为在第一次连接之后创建的pyspark数据帧有两列,其中Exact具有相同的列名.
r_df.join(f_df, ["lab_key"]).join(m_df, ["lab_key"])
Run Code Online (Sandbox Code Playgroud)
如果您要加入的键是相同的,则无需从数据帧中专门引用该列,而只需将名称指定为数组.这将告诉Pyspark在最终数据框中只创建一个具有该名称的列
| 归档时间: |
|
| 查看次数: |
2832 次 |
| 最近记录: |