gpt4 book ai didi

python - 如何在 pyspark 列表达式中引用名称中带有连字符的列?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:26 28 4
gpt4 key购买 nike

我有一个像这样的 json 文档(请注意,这个模式不受我的控制——我不能去掉键中的连字符):

{
"col1": "value1",
"dictionary-a": {
"col2": "value2"
}
}

我使用 session.read.json(...) 将此 json 读入数据框(名为“df”),如下所示:

df = session.read.json('/path/to/json.json')

我想这样做:

df2 = df.withColumn("col2", df.dictionary-a.col2)

我得到错误:

AttributeError: 'DataFrame' object has no attribute 'dictionary'

如何在 pyspark 列表达式中引用名称中带有连字符的列?

最佳答案

如您所见,df.dictionary-a.col2 中的连字符被评估为减法:df.dictionary - a.col2

相反,您可以使用 pyspark.sql.functions.col按名称和 pyspark.sql.Column.getItem 引用列通过键访问字典的元素。

尝试:

from pyspark.sql.functions import col
df2 = df.withColumn("col2", col("dictionary-a").getItem("col2"))

关于python - 如何在 pyspark 列表达式中引用名称中带有连字符的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52338462/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com