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