Spark SQL在处理数据库操作时无法处理特定的数据类型(Timestamp with local Timezone)
发布时间
阅读量:
阅读量
在构建大数据平台的过程中,数据的ETL处理是一项常见任务,通常涉及从传统的关系型数据库RDBMS中提取数据,并将其传输至HDFS存储系统。在开发数据湖新版本时,曾采用Spark SQL作为ETL处理的工具,但在实际应用过程中发现Spark SQL无法兼容特定的数据类型,例如ORACLE数据库中的Timestamp with local Timezone类型,这一限制导致了处理上的困难。
一、系统环境配置与搭建
Spark 版本:2.1.0.cloudera1
JDK 版本:Java HotSpot(TM) 64-Bit Server VM,Java 1.8.0_131
ORACLE JDBC driver 版本:ojdbc7.jar
Scala 版本:2.11.8
二、Spark SQL读数据库表遇到的不支持某些数据类型
Spark SQL 若需获取传统关系型数据库中的数据,必须借助 JDBC ,因为这是官方提供的数据库访问接口。在利用 Spark 读取数据库数据时,需要重点处理以下两个方面:
实现数据的分布式读取;
以及如何将原始表结构映射为 DataFrame。
2.1 业务代码
public class Config {
// spark-jdbc parameter names
全部评论 (0)
还没有任何评论哟~
