【问题标题】:How to fix encoding problem with Spark JDBC?如何解决 Spark JDBC 的编码问题?
【发布时间】:2019-11-26 13:44:40
【问题描述】:

我在 Oracle 中有一个表,其中有一些俄语记录。

当我使用 Spark JDBC 读取此表时,我收到的数据帧的值不正确。

您知道为什么会发生这种情况以及如何解决吗?

// executes given query using jdbc
  def executeQuery(spark: SparkSession, configuration: Map[String, String], sql_statement: String): DataFrame
  = spark.read.format("jdbc")
    .option("driver", "oracle.jdbc.OracleDriver")
    .option("url", s"jdbc:oracle:thin:@//${configuration("address")}")
    .option("user", configuration("username"))
    .option("password", configuration("password"))
    .option("dbtable", s"(${sql_statement})")
    .option("fetchSize", configuration("fetch_size"))
    .load()

【问题讨论】:

    标签: oracle apache-spark jdbc


    【解决方案1】:

    在您的 jdbc 连接中,您需要设置 .option("encoding", "UTF-8")("characterEncoding", "UTF-8") 以确保我们在读取数据时使用 UTF8 字符集。这应该确保您能够正确阅读俄语字符。

    【讨论】:

    • 在 JDBC 上不起作用
    猜你喜欢
    • 1970-01-01
    • 2020-02-27
    • 2017-10-03
    • 2021-01-09
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多