带句点的Spark SQL拆分(。)

时间:2018-01-06 08:17:12

标签: pyspark-sql

我在使用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' \。'。我在这里做错了吗?

2 个答案:

答案 0 :(得分:2)

看起来你需要逃避\\

spark.sql("""select split('a.aa', '\\\\.')""").show()

如果你直接在SparkSQL中运行它,那就是

select split('a.aa', '\\.')

答案 1 :(得分:-3)

您可以使用 [.] 来拆分使用

LIKE THIS