相关疑难解决方法(0)

自定义分隔符csv阅读器火花

我想在Apache Spark中读取具有以下结构的文件.

628344092\t20070220\t200702\t2007\t2007.1370
Run Code Online (Sandbox Code Playgroud)

分隔符是\ t.如何在使用spark.read.csv()时实现这一点?

csv太大而无法使用pandas,因为读取此文件需要很长时间.有没有一种方法与之相似

pandas.read_csv(file, sep = '\t')
Run Code Online (Sandbox Code Playgroud)

非常感谢!

csv apache-spark pyspark

17
推荐指数
2
解决办法
3万
查看次数

Spark csv 读取 ^A(\001)

我正在尝试在 pyspark 中使用 ^A(\001) 分隔符读取 csv 文件。我已经浏览了下面的链接,正如链接中提到的,我尝试了相同的方法,它按预期工作,即我能够读取 csv 文件并进一步处理它们。

链接: 如何使用spark-csv解析使用^A(即\001)作为分隔符的csv?

在职的

spark.read.option("wholeFile", "true"). \
                    option("inferSchema", "false"). \
                    option("header", "true"). \
                    option("quote", "\""). \
                    option("multiLine", "true"). \
                    option("delimiter", "\u0001"). \
                    csv("path/to/csv/file.csv")
Run Code Online (Sandbox Code Playgroud)

我想从数据库中读取它而不是硬编码分隔符,下面是我尝试过的方法。

update table set field_delimiter= 'field_delimiter=\\u0001'
Run Code Online (Sandbox Code Playgroud)

(键值对。使用键,我正在访问值)

delimiter = config.FIELD_DELIMITER (This will fetch the delimiter from the database)
>>print(delimiter) 
 \u0001
Run Code Online (Sandbox Code Playgroud)

不工作

spark.read.option("wholeFile", "true"). \
                    option("inferSchema", "false"). \
                    option("header", "true"). \
                    option("quote", "\""). \
                    option("multiLine", "true"). \
                    option("delimiter", delimiter). \
                    csv("path/to/csv/file.csv")
Run Code Online (Sandbox Code Playgroud)

错误:

: java.lang.IllegalArgumentException: Unsupported special character for delimiter: \u0001 …
Run Code Online (Sandbox Code Playgroud)

python csv delimiter apache-spark pyspark

5
推荐指数
1
解决办法
1318
查看次数

标签 统计

apache-spark ×2

csv ×2

pyspark ×2

delimiter ×1

python ×1