Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pyspark列表达式中引用名称中带有连字符的列?_Python_Apache Spark_Pyspark_Apache Spark Sql_Pyspark Sql - Fatal编程技术网

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

Python 如何在pyspark列表达式中引用名称中带有连字符的列?,python,apache-spark,pyspark,apache-spark-sql,pyspark-sql,Python,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Sql,我有一个类似这样的json文档(请注意,此模式不在我的控制之下-我无法去掉键中的连字符): 我使用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

我有一个类似这样的json文档(请注意,此模式不在我的控制之下-我无法去掉键中的连字符):

我使用
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

相反,您可以使用按名称引用列,并按键访问字典的元素

尝试:

AttributeError: 'DataFrame' object has no attribute 'dictionary'
from pyspark.sql.functions import col
df2 = df.withColumn("col2", col("dictionary-a").getItem("col2"))