我在使用 pyspark sql 时在 spark 2.2 中遇到了一个问题,我尝试用句点 (.) 拆分列,即使在提供转义字符后它也表现不佳:
>>> spark.sql("select split('a.aaa','.')").show()
+---------------+
|split(a.aaa, .)|
+---------------+
| [, , , , , ]|
+---------------+
>>> spark.sql("select split('a.aaa','\\.')").show()
+---------------+
|split(a.aaa, .)|
+---------------+
| [, , , , , ]|
+---------------+
>>> spark.sql("select split('a.aaa','[.]')").show()
+-----------------+
|split(a.aaa, [.])|
+-----------------+
| [a, aaa]|
+-----------------+
Run Code Online (Sandbox Code Playgroud)
它仅在我们像 [.] 这样提供它时才使用句点,同时它也应该与转义序列 '\.' 一起使用。我在这里做错了吗?
看起来你需要逃避\\:
spark.sql("""select split('a.aa', '\\\\.')""").show()
Run Code Online (Sandbox Code Playgroud)
如果你直接在 SparkSQL 中运行它,那就是
select split('a.aa', '\\.')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3559 次 |
| 最近记录: |