Spark SQL多行SELECT语句报错求助:EOL while scanning string literal
Spark SQL多行SELECT语句语法错误解决方法
你遇到的SyntaxError: EOL while scanning string literal错误,是因为Python中普通双引号包裹的字符串不支持直接换行,解析器会认为字符串未结束就到了行尾。以下是满足你列位置要求的解决办法:
使用三重双引号包裹SQL语句
这是Python中处理多行字符串最常用的方式,能完美保留你需要的换行格式:salesforce_df = spark.sql("""SELECT colname1, colname2, colname3 FROM tabname;""")在每行末尾添加反斜杠
通过反斜杠告诉解析器字符串会延续到下一行,注意反斜杠后不能有多余空格:salesforce_df = spark.sql("SELECT\ colname1,\ colname2,\ colname3\ FROM tabname;")使用字符串拼接
用+连接每行字符串,同样能实现换行效果:salesforce_df = spark.sql("SELECT " + "colname1, " + "colname2, " + "colname3 " + "FROM tabname;")
其中第一种方法最直观且不易出错,完全符合你对列位置的要求。
内容的提问来源于stack exchange,提问作者Rohit Kulkarni
相关产品推荐
相关产品推荐

