首页 > 解决方案 > 如何将记录分隔符字符转换为换行符

问题描述

您好,我正在使用这个 porpouse pyspark 我有一个包含此信息的 txt 文件

c-234r4|Julio|38|Madrida-533r2|Ana|32|Madrida-543r4|Sonia|33|Bilbaob-654r4|Jorge|23|Barcelona

如果您看到所有记录都使用记录分隔符字符连接起来请参阅此链接

我正在尝试这样做,但没有结果

df = spark.read.load("s3://my-bucket/txt_file/data.txt", format="csv", sep="|", inferSchema="true", encoding="UTF-8", escape='U+001E')


df.show(10, False)

错误:

Py4JJavaError: An error occurred while calling o496.load.
: java.lang.RuntimeException: escape cannot be more than one character
    at org.apache.spark.sql.execution.datasources.csv.CSVOptions.getChar(CSVOptions.scala:52)

最终结果必须如下所示:

+-------+-----+---+--------------+
|_c0    |_c1  |_c2|_c3           |
+-------+-----+---+--------------+
|c-234r4|Julio|38 |Madrid        |
|a-533r2|Ana  |32 |Madrid        |
|a-543r4|Sonia|33 |Bilbao        |
|b-654r4|Jorge|23 |Barcelona     |
+-------+-----+---+--------------+

测试的选项:

option-1 --> 这完全错误

在此处输入图像描述

option-2 --> 这将行显示为列...这是错误的

在此处输入图像描述


有人可以给我一个建议,我需要一个想法来解决我的实际角色吗?

我会欣赏的

谢谢

标签: pythonapache-sparkpysparkapache-spark-sqlpython-unicode

解决方案


推荐阅读