You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在EMR环境运行Spark SQL时不支持原始字符串?

PySpark SQL原始字符串在本地与EMR环境的兼容性问题

在PySpark中使用regexp_extract或regexp_replace等Spark SQL函数时,带r前缀的原始字符串字面量在本地环境能正常运行,但部署到EMR集群执行时却不被支持。

复现代码

from pyspark.sql import SparkSession
spark = SparkSession\
        .builder\
        .appName("test")\
        .getOrCreate()
spark.sql(r"select regexp_replace(r'ABC\123XYZ\456',r'[\\][\d][\d][\d]','') as new_value").show()

报错信息

pyspark.sql.utils.ParseException:
Literals of type 'R' are currently not supported

环境与排查情况

  • 本地环境:PySpark 3.3.0,代码可成功执行
  • EMR环境:执行上述代码会抛出上面的解析异常
  • 已检查Spark SQL会话配置选项,未发现可修改原始字符串解析方式的配置,最接近的是spark.sql.parser.quotedRegexColumnNames
  • 曾听闻同事提及AWS为EMR定制了内部Spark版本,但未找到相关官方文档佐证;也怀疑存在未被发现的Spark配置项

问题诉求

希望了解本地与EMR环境出现这种差异的具体原因。

内容的提问来源于stack exchange,提问作者danielcahall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:01:15