list - 如何在不硬编码列名的情况下获取 pyspark 数据框中列的唯一值?
问题描述
我需要提取与 pandas 相同的列的所有唯一值,而无需对列名进行硬编码。你能帮忙怎么做吗?
例子:
p_k = 'Projectnum'
如果我这样给:
uni_val = [x.Projectnum for x in spark_df.select('Projectnum').distinct().collect()]
uni_val = ['SR0480-000']
但我不想对 column_name 进行硬编码。所以我将 column_name 保存在变量 p_k 中。但是如何通过列表?
uni_val = [x.pk for x in spark_df.select(pk).distinct().collect()]
这给了我错误。
解决方案
您应该使用x[0]
,而不是x.p_k
因为返回可以使用但不能collect
访问的行对象[0]
.p_k
uni_val = [x[0] for x in spark_df.select(p_k).distinct().collect()]
推荐阅读
- python - Hwo 在 Python > 3.6 中从 Simulink 模型生成代码
- r - R Studio:如何将空白值替换为第二列的相应行值
- php - 多维数组减1的算法复杂度
- pandas - 熊猫数据框中满足条件的最小值
- php - Laravel 子域
- bash - Ubuntu 16 Gnome 终端 .bashrc 源问题
- c - 如何将内存地址转换为char字符串
- amazon-web-services - 无法解码 AWS Cognito 身份池的 JWK
- javascript - 为什么 Chrome 控制台会返回 typeof null 的字符串
- javascript - 当 ID 设置为未在任何地方预定义的名称时删除 Firestore 文档