python-3.x - 需要在 pyspark 中加入多个表:
问题描述
查询使用:
df= (df1.alias('a')
.join(df2, a.id == df2.id, how='inner')
.select('a.*').alias('b')
.join(df3, b.id == df3.id, how='inner'))
错误:未定义名称“b”。
解决方案
.alias('b')
不会创建名为b
. 它设置返回数据帧的内部名称。您a.id
可能也不是您期望的那样,而是先前定义的东西。
我不记得在表达式中按名称访问新创建的 DF 的好方法。我会使用中间标识符:
df_joined = df1.join(df1.id == df2.id, how='inner')
result_df = dj_joined.join(df_joined.id == df3.id, how='inner')
推荐阅读
- algorithm - 将“并行性”引入任务调度问题
- php - Symfony 4 表单 VichImageType 更新自动填充
- python - 如何在 python selenium 中设置 chrome 设置?
- windows - 如何一次在多个 Windows 服务器上运行 bat 脚本?
- syntax - 为什么在模式匹配中使用“ref”而不是星号?
- java - 从 json 动态填充微调器数据
- google-cloud-platform - 为什么我们看到 memorystore 从 700 条记录中提取一条记录需要更多时间?
- c# - 依赖程序集仅在被代码引用时部署
- terraform - Terraform:自动填充模块的变量
- python - 我正在用python编写下面提到的简单代码,但它没有打开