Spark中无法解析列名'abx-abc-123.A1.OP'的问题求助
Spark含特殊字符列的查询错误解决
问题原因
列名abx-abc-123.A1.OP同时包含连字符(-)和点(.),Spark会默认把点解析为嵌套字段的分隔符,连字符也会被当作语法分隔符处理,直接传入字符串会导致Spark错误解析列名,无法匹配实际存在的列。
解决方法
- 用反引号(`)完整包裹列名(注意不是单引号):
final_merged_df.select('`abx-abc-123.A1.OP`') - 结合
col函数,用反引号包裹列名:from pyspark.sql.functions import col final_merged_df.select(col('`abx-abc-123.A1.OP`'))
以上两种方式都能让Spark将整个字符串识别为单个列名,避免解析错误。
内容的提问来源于stack exchange,提问作者MMV
相关产品推荐
相关产品推荐

