当前位置: 首页 > 知识库问答 >
问题:

SPARK-CSV读取选项

韩恺
2023-03-14
compile group: 'org.scala-lang', name: 'scala-library', version: '2.11.1'
compile group: 'org.apache.spark', name: 'spark-core_2.11', version: '2.1.0'
import java.io.{BufferedWriter, File, FileWriter}
import java.sql.{Connection, DriverManager}
import net.sf.log4jdbc.sql.jdbcapi.ConnectionSpy
import org.apache.spark.sql.{DataFrame, SparkSession, Column, SQLContext}
import org.apache.spark.sql.functions._
import org.postgresql.jdbc.PgConnection

spark.read
    .option("charset", "utf-8")
    .option("header", "true")
    .option("quote", "\"")
    .option("delimiter", ",")
    .csv(...)

共有1个答案

红朝
2023-03-14

你可以在这里看到:

val charset = parameters.getOrElse("encoding", 
       parameters.getOrElse("charset",StandardCharsets.UTF_8.name()))

编码和字符集都是有效的选项,在设置编码时使用这两个选项都不会有问题。

Charset只是从spark csv代码来自databricks spark csv项目时开始提供遗留支持,该项目从2.x开始合并到spark项目中。这也是delimiter(现在是sep)的来源。

spark.read.option("header", "true").csv(...)
 类似资料:
  • 我正在通过Spark使用以下命令读取csv文件。 我需要创建一个Spark DataFrame。 我使用以下方法将此rdd转换为spark df: 但是在将rdd转换为df时,我需要指定df的模式。我试着这样做:(我只有两列文件和消息) 然而,我得到了一个错误:java。lang.IllegalStateException:输入行没有架构所需的预期值数。需要2个字段,但提供1个值。 我还尝试使用以

  • 我正在尝试使用spack-csv从spack-shell中的aws s3读取csv。 下面是我所做的步骤。使用下面的命令启动spack-shell 箱子/火花壳——包装com。数据块:spark-csv\u 2.10:1.2.0 在shell中,执行以下scala代码 获取以下错误 我在这里错过了什么?请注意,我可以使用 同样的scala代码在databricks笔记本中也可以正常工作 在spar

  • 我在尝试使用Spark简单读取CSV文件时遇到了这个问题。在这样的操作之后,我想确保: 数据类型是正确的(使用提供的模式) 根据提供的架构,标头是正确的 这是我使用的代码,并且有问题: 类型为产品类型,即案例类。这是可行的,但它不会检查列名是否正确,因此我可以提供另一个文件,只要数据类型正确,就不会发生错误,而且我不知道用户提供了错误的文件,但由于某种程度上的巧合,正确的数据类型具有正确的顺序。

  • 我正在尝试将压缩的csv文件(.bz2)读取为数据帧。我的代码如下 当我在IDE中尝试时,这是可行的。我可以读取数据并对其进行处理,但当我尝试使用maven构建数据并在命令行上运行它时,会出现以下错误 我不确定我是否在这里错过了什么。读取csv文件是否有一些依赖项?根据留档,Spark 2. x. x内置了对此的支持。

  • 我得到了一个CSV文件和一个头文件,它必须通过Spark(2.0.0和Scala2.11.8)作为数据frame读取。 是否有任何方法可以使用spark代码仅从CSV头中转义特殊字符?

  • 我在尝试生成一个简单DF的共线性分析时遇到了问题(见下文)。我的问题是,每次尝试运行该函数时,都会检索到以下错误消息: 下面是我正在使用的代码 我试图运行函数的DF如下所示。 我在这里有两个猜测;但不知道如何解决这个问题: -猜测1:np。arrange导致与标头发生某种冲突 -猜想2:问题来自blankseperator,它阻止函数正确地从一列跳转到另一列。问题是,我的CSV文件已经有分隔符(我