Сжать данные Json во внешней таблице куста, во время запроса исключения?

Я создал внешние таблицы, выполнив следующие шаги.

Hive >  ADD JAR /usr/lib/hive/lib/hive-serdes-1.0-SNAPSHOT.jar;
Hive > set hive.exec.compress.output=true;
Hive > set mapred.output.compress=true;
Hive> set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
Hive> set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;

Hive >  CREATE EXTERNAL TABLE Json (id BIGINT,created_at STRING,source STRING,favorited BOOLEAN) ROW FORMAT SERDE  "com.cloudera.hive.serde.JSONSerDe"
LOCATION  /user/cloudera/ jsonGZ ";

Я сжал свой файл Json, выполнив команду ниже

“ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming-2.6.0-cdh5.5.0.jar -Dmap.output.compress=true  -Dmap.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec -Dmapreduce.output.fileoutputformat.compress=true -Dmapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec -input /user/cloudera/json/ -output /user/cloudera/jsonGZ “

Затем, когда я запускаю “ select * from json; “, я получаю следующую ошибку:

“OK Failed with exception java.io.IOException:org.apache.hadoop.hive.serde2.SerDeException: org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.LinkedHashMap out of VALUE_NUMBER_INT token at “ 

А также я создал еще одну таблицу, используя «org.apache.hive.hcatalog.data.JsonSerD».

Hive >  ADD JAR /usr/lib/hive-hactalog/share/ hactalog/ hive-hactalog-core.jar;

Hive > CREATE EXTERNAL TABLE Json 1(id BIGINT,created_at STRING,source STRING,favorited BOOLEAN) ROW FORMAT SERDE  "com.cloudera.hive.serde.JSONSerDe"
LOCATION  /user/cloudera/ jsonGZ ";

Затем, когда я запускаю “select * from json1;“, я получаю следующую ошибку:

Failed with exception java.io.IOException:org.apache.hadoop.hive.serde2.SerDeException: java.io.IOException: Start token not found where expected" after using "org.apache.hive.hcatalog.core(hive-hcatalog-core-0.13.0.jar)"

Я что-то упускаю? Как я могу решить эти ошибки.


person Sai    schedule 14.06.2016    source источник
comment
Пожалуйста, отредактируйте свой вопрос, чтобы включить точные символы, используемые в командах. В некоторых случаях у вас есть фигурные кавычки, отсутствующие кавычки, пробелы и двойные кавычки — строки SQL должны (обычно) быть заключены в одинарную кавычку, например ', а не " или . Так что не похоже, что некоторые из этих запросов вообще могут работать. Затем работайте в обратном направлении, начиная без компрессии.   -  person Tom Harrison    schedule 15.06.2016


Ответы (1)


Просто заархивируйте ваши файлы и поместите их как есть (*.gz) в расположение таблицы.

gzip имя файла

person Sai    schedule 15.06.2016