У меня есть данные, как показано ниже:
id,name,description,category
1,sid,I am don,right?,production
Я выполнил шаги, указанные в этой ссылке.Основная проблема заключается в том, что когда я вставляю данные во временную таблицу, данные в 3rd column
разделяются и помещаются в 4-й столбец, т.е. когда он видит ","
перед словом right
, он разделяет данные и выталкивает их в следующуюколонка.Это потому, что я получаю данные в формате CSV и, следовательно, применяю разделитель как ","
при создании временной таблицы.Итак, там беспорядок.Как я могу ее решить ??
После следующих шагов, предложенных xenodevil
, я запустил запрос ниже, и у меня появляется ошибка:
insert into perTable select * from sampleTable;
Где sampleTable - это временная таблица, а perTable - этотаблица ORC и данные sampleTable выглядят так:
+-----------------+-------------------+--------------------------+-----------------------+--+
| sampletable.id | sampletable.name | sampletable.description | sampletable.category |
+-----------------+-------------------+--------------------------+-----------------------+--+
| 1 | sid | I am don,right? | production |
+-----------------+-------------------+--------------------------+-----------------------+--+
Но ошибка ниже:
ERROR : Status: Failed
ERROR : Vertex failed, vertexName=Map 1, vertexId=vertex_1560140822404_0022_1_00, diagnostics=[Task failed, taskId=task_1560140822404_0022_1_00_000000, diagnostics=[TaskAttempt 0 failed, info=[Error: Failure while running task:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"id":"1","name":"sid","description":"I am don,right?","category":"production"}
at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:173)
at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:139)
Так в чем здесь проблема ??