2017-06-01 3 views
0

Ich versuche, eine Tabelle aus dem Hive in die Oracle-Datenbank zu exportieren.sqoop java.lang.RuntimeException: Eingabedaten können nicht analysiert werden

Die Tabelle in hive ich versuche, von

CREATE TABLE `db.to_oracle`(
    `ctn` string, 
    `platform_code` string, 
    `sum` double, 
    `days_ctn` int, 
    `mtr_comments` string, 
    `imsi` string, 
    `ban` int, 
    `price_plan` string, 
    `market_code` string, 
    `currency` string, 
    `balance` string, 
    `time_key` date) 
ROW FORMAT SERDE 
    'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
STORED AS INPUTFORMAT 
    'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' 

Meine Sqoop Anweisung

sqoop export \ 
-D mapreduce.job.queuename=adhoc \ 
-D oracle.jdbc.mapDateToTimestamp=false \ 
--connect jdbc:oracle:thin:secret \ 
--password pas \ 
--username user\ 
--export-dir /apps/hive/warehouse/db.db/to_oracle/ \ 
--input-fields-terminated-by '\t' \ 
--input-lines-terminated-by '\n' \ 
--table database.oracle_table 

ich diesen Fehler zu exportieren

java.lang.RuntimeException: Can't parse input data: '9696278394S10.01dolg_neaktivnost#20170513_3#1#12.0525099318958479562895398812VSE1NIKORUR-9992017-05-13' 

Es scheint Sqoop nicht das Trennzeichen nicht erkennt oder so. Warum ist das und wie korrigiere ich es?

+0

Was ist das Feld Trennzeichen in 'db.to_oracle' Tabelle? - Eingabefelder - beendet mit '#' oder '\ t'? –

+0

@dev Es ist '\ t'. Ich löste es, indem ich die Tabelle wieder herstellte und 'ROW FORMAT DELIMITED FIELDS TERMINATED VON' vorgab; '' und '' '' als Trennzeichen verwendete. – Evgenii

Antwort

0

Das Problem mit dem Trennzeichen ist, da Sie nicht die Trennzeichen in hive Tabelle, die Standard-hive Begrenzungszeichen sind angegeben haben:

FIELDS TERMINATED BY '\ 001'

COLLECTION PUNKTE TERMINATED BY ‚\ 002 "

MAP KEYS BEENDET BY '\ 003'

LINES BEENDET BY '\ n'

ändern der Begrenzungszeichen in entweder Erstellen von Hive-Tabellen oder in Ihrem sqoop-Job, um das Problem zu lösen.

Verwandte Themen