我在使用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]|
+-----------------+
它仅在我们提供[。]时使用句点,而它也应该使用escape seq' \。'。我在这里做错了吗?
答案 0 :(得分:2)
看起来你需要逃避\\
:
spark.sql("""select split('a.aa', '\\\\.')""").show()
如果你直接在SparkSQL中运行它,那就是
select split('a.aa', '\\.')
答案 1 :(得分:-3)
您可以使用 [.] 来拆分使用