首页 > 解决方案 > Spark SQL - 在列名中使用逗号为列命名

问题描述

我必须使用 spark SQL 将临时视图中的数据存储在数据块中,以逗号分隔格式存储到数据帧中。因此,对于临时视图中的多列,数据框只需要存储一列,所有数据列都是分开的

下面是示例:

Temp View: temp_class
roll  name   subject
111   Ram    Maths

Dataframe: df

roll,name,subject
111,Ram,Maths

Below is the code without alias:

df= spark.sql("""
select concat(roll,',',name,',',subject) from temp_class
"""
)

当我尝试像传统的 SQL 方式(下面的代码)一样添加别名时,databricks 会引发错误 - Mismatched input "roll,name,subject" Expecting

df= spark.sql("""
select concat(roll,',',name,',',subject) as "roll,name,subject" from temp_class
"""
)

我怎样才能输入别名?

标签: pyspark-sqldatabricks

解决方案


您需要将列别名放在 `` (重音或反引号)中。

试试这个,它应该对你有用 -

df= spark.sql("""
select concat(roll,',',name,',',subject) as `roll,name,subject` from temp_class
"""
)

推荐阅读