我们试图从Oracle表中读取数据,“基于日期”的数据类型被转换为“时间戳”数据类型 .
例如:表是Oracle .
desc hr.employees;
Name Null? Type
-----------------------------------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SSN VARCHAR2(55)
和Scala中的DataFrame中读取的模式
|-- EMPLOYEE_ID: decimal(6,0) (nullable = false)
|-- FIRST_NAME: string (nullable = true)
|-- LAST_NAME: string (nullable = false)
|-- EMAIL: string (nullable = false)
|-- PHONE_NUMBER: string (nullable = true)
|-- HIRE_DATE: timestamp (nullable = false) (Incorrect data type read here)
|-- JOB_ID: string (nullable = false)
|-- SALARY: decimal(8,2) (nullable = true)
|-- COMMISSION_PCT: decimal(2,2) (nullable = true)
|-- MANAGER_ID: decimal(6,0) (nullable = true)
|-- DEPARTMENT_ID: decimal(4,0) (nullable = true)
|-- SSN: string (nullable = true)
Hire_Date
被错误地读作TimeStamp,有没有办法纠正 .
正在从Oracle中即时读取数据,并且应用程序没有数据类型的预先知识,并且在读取后无法转换它 .
1 回答
Analysis: 按照oracle -
参考链接是here .
Solution:
希望能帮助到你!