我想在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)
非常感谢!
我正在尝试在 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)