pyspark - PySpark中同一张表交叉连接后如何访问字段
问题描述
我在一张桌子上运行了一个交叉连接,它工作得很好。现在的问题是我不知道如何从结果数据帧中处理相同的字段。
df = spark.sql("select p1.id, p2.id from profile p1 CROSS JOIN profile p2 WHERE p1.id < p2.id")
当我打印出第一行时,我得到了这样的东西:
Row(id=21398968, id=76109821)
运行 "print(res_2[0]['id'])" 只产生第一个作为标量值(不是列表)
解决方案
您可以将查询更改为:
df = spark.sql("select p1.id AS p1_id, p2.id AS p2_id from profile CROSS JOIN profile p2 WHERE p1.id < p2.id")
通过使用AS
,您应该能够避免名称冲突。
推荐阅读
- python - Keras 错误“您必须为占位符张量提供一个值”
- c# - 使用 file.move 在 C# 中重命名新文件
- xero-api - UnauthorizedException token_rejected
- r - R data.table 按组计算多列中的唯一值
- ios - 领域,对象已被删除或失效
- javascript - 我怎样才能使一个框适合css中的图片(观看视频以了解我的意思)
- python - 搅拌机脚本 - 不正确的纹理添加
- php - 获取 public_users 的最新帖子 instagram
- python - 根据2个不同变量python中的值从数组值创建列表
- python - 在python3中,如何在特定位置拆分列表列表?