首页 > 解决方案 > pyspark 读取制表符分隔符未按预期运行

问题描述

我正在使用 Spark 2.4,并且正在尝试读取制表符分隔的文件,但是,虽然它确实读取了文件,但它并没有正确解析分隔符。

测试文件,例如,

$ cat file.tsv
col1    col2
1       abc
2       def

该文件是正确的制表符分隔:

$ cat -A file.tsv
col1^Icol2$
1^Iabc$
2^Idef$

我都试过了"delimiter="\t"sep="\t" 但都没有给出预期的结果。

df = spark.read.format("csv") \
    .option("header", "true") \
    .option("delimiter", "\t") \
    .option("inferSchema","true") \
    .load("file.tsv")

df = spark.read.load("file.tsv", \
    format="csv", 
    sep="\t",
    inferSchema="true",
    header="true")

读取的结果是单列字符串。

df.show(10,False)
+---------+
|col1   col2|
+---------+
|1      abc    |
|2      def    |
+---------+

我做错了什么还是必须在阅读之前预处理文件以将制表符转换为管道?

标签: pyspark

解决方案


推荐阅读