小编Sri*_*har的帖子

PySpark Sql,列名中包含破折号/连字符

我有 PySpark 数据框 df

data = {'Passenger-Id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5},'Age': {0: 22, 1: 38, 2: 26, 3: 35, 4: 35}}
df_pd = pd.DataFrame(data, columns=data.keys())
df = spark.createDataFrame(df_pd)
Run Code Online (Sandbox Code Playgroud)
+------------+---+
|Passenger-Id|Age|
+------------+---+
|           1| 22|
|           2| 38|
|           3| 26|
|           4| 35|
|           5| 35|
+------------+---+
Run Code Online (Sandbox Code Playgroud)

这有效

   df.filter(df.Age == 22).show()
Run Code Online (Sandbox Code Playgroud)

但下面不起作用,因为 - 在列名称中

    df.filter(df.Passenger-Id == 2).show()
Run Code Online (Sandbox Code Playgroud)

AttributeError:“DataFrame”对象没有属性“Passenger”

我在 Spark sql 中也遇到了同样的问题,

        spark.sql("SELECT  Passenger-Id FROM AutoMobile").show()

        spark.sql("SELECT  automobile.Passenger-Id FROM AutoMobile").show()
Run Code Online (Sandbox Code Playgroud)

出现以下错误

AnalysisException:无法解析Passenger给定输入列的“”:[automobile.Age,automobile.Passenger-Id] …

python apache-spark pyspark

0
推荐指数
1
解决办法
2579
查看次数

标签 统计

apache-spark ×1

pyspark ×1

python ×1