2013-05-31 2 views
1

Я пытаюсь запустить запрос куста в интерфейсе Cloudera Hue, и он отлично работает для нескольких сотен записей. Когда я запускаю его на большом наборе данных, он не работает. Я попытался найти его в Интернете, но похоже, что есть много подобных ошибок, но не точное решение, которое я ищу. Я использую redexp_replace в своем запросе на куст, я не думаю, что это вызывает какие-либо исключения (мое впечатление, что он может легко обрабатывать типы строк и NULL)regexp_replace exception

Ошибка, которую я получаю, это java.util.regex.PatternSyntaxException : Непревзойденная закрытие ')' рядом с индексом 12

ОБНОВЛЕНИЕ: Это запись вызывает проблему:

Columna: ReadData (ListDirectory или)

columnB: ListDirectory)

гр olumnC: NULL

columnD: NULL

Мой запрос: REGEXP_REPLACE (Columna, columnB ""), как Columna, Колонка B regexp_replace (columnC, columnD "") в качестве columnC,

Пожалуйста, дайте мне знать, где я ошибаюсь.

Вот интересная часть журнала ... * .... [запись] ...

at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:565) 
           at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143) 
           at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50) 
           at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:418) 
           at org.apache.hadoop.mapred.MapTask.run(MapTask.java:333) 
           at org.apache.hadoop.mapred.Child$4.run(Child.java:268) 
           at java.security.AccessController.doPrivileged(Native Method) 
           at javax.security.auth.Subject.doAs(Subject.java:396) 
           at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408) 
           at org.apache.hadoop.mapred.Child.main(Child.java:262) 
           Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.io.IOException: DFSOutputStream is closed 
           at org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:620) 
           at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:474) 
           at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:800) 
           at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84) 
           at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:474) 
           at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:800) 
           at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:83) 
           at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:474) 
           at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:800) 
           at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:546) 
           ... 9 more 
           Caused by: java.io.IOException: DFSOutputStream is closed 
           at org.apache.hadoop.hdfs.DFSOutputStream.isClosed(DFSOutputStream.java:1239) 
           at org.apache.hadoop.hdfs.DFSOutputStream.writeChunk(DFSOutputStream.java:1407) 
           at org.apache.hadoop.fs.FSOutputSummer.writeChecksumChunk(FSOutputSummer.java:161) 
           at org.apache.hadoop.fs.FSOutputSummer.write1(FSOutputSummer.java:104) 
           at org.apache.hadoop.fs.FSOutputSummer.write(FSOutputSummer.java:90) 
           at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:54) 
           at java.io.DataOutputStream.write(DataOutputStream.java:90) 
           at org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat$1.write(HiveIgnoreKeyTextOutputFormat.java:86) 
           at org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:606) 
           ... 18 more 

           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.MapOperator: 3 finished. closing... 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.MapOperator: 3 forwarded 90478 rows 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.MapOperator: DESERIALIZE_ERRORS:0 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.TableScanOperator: 0 finished. closing... 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.TableScanOperator: 0 forwarded 90478 rows 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.SelectOperator: 1 finished. closing... 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.SelectOperator: 1 forwarded 90478 rows 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.FileSinkOperator: 2 finished. closing... 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.FileSinkOperator: 2 forwarded 0 rows 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.FileSinkOperator: TABLE_ID_1_ROWCOUNT:90478 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.SelectOperator: 1 Close done 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.TableScanOperator: 0 Close done 
           2013-05-31 16:35:20,090 INFO org.apache.hadoop.hive.ql.exec.MapOperator: 3 Close done 
           2013-05-31 16:35:20,090 INFO ExecMapper: ExecMapper: processed 90477 rows: used memory = 10815536 
           2013-05-31 16:35:20,097 INFO org.apache.hadoop.mapred.TaskLogsTruncater: Initializing logs' truncater with mapRetainSize=-1 and reduceRetainSize=-1 
           2013-05-31 16:35:20,099 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hdfs (auth:SIMPLE) cause:java.io.IOException: Filesystem closed 
           2013-05-31 16:35:20,099 WARN org.apache.hadoop.mapred.Child: Error running child 
           java.io.IOException: Filesystem closed 
           at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:552) 
           at org.apache.hadoop.hdfs.DFSInputStream.close(DFSInputStream.java:522) 
           at java.io.FilterInputStream.close(FilterInputStream.java:155) 
           at org.apache.hadoop.util.LineReader.close(LineReader.java:149) 
           at org.apache.hadoop.mapred.LineRecordReader.close(LineRecordReader.java:195) 
           at org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.doClose(CombineHiveRecordReader.java:72) 
           at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.close(HiveContextAwareRecordReader.java:96) 
           at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.close(HadoopShimsSecure.java:273) 
           at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.close(MapTask.java:223) 
           at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:422) 
           at org.apache.hadoop.mapred.MapTask.run(MapTask.java:333) 
           at org.apache.hadoop.mapred.Child$4.run(Child.java:268) 
           at java.security.AccessController.doPrivileged(Native Method) 
           at javax.security.auth.Subject.doAs(Subject.java:396) 
           at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408) 
           at org.apache.hadoop.mapred.Child.main(Child.java:262) 
           2013-05-31 16:35:20,102 WARN org.apache.hadoop.mapred.Task: Parent died. Exiting attempt_201305300036_0011_m_000000_1 

ответ

0

Я не совсем понимаю, что вы пытаетесь достичь, но могу сказать, что второй аргумент regex_replace должен быть правильным регулярным выражением.

Вы передаете значения, которые являются недопустимыми выражениями. В частности, ListDirectory) с ) является зарезервированным символом в регулярных выражениях.

+0

Действительно, значения столбца B или столбца D должны быть действительными шаблонами Regexp. Вы можете отфильтровать строки с помощью некоторого '\ (' или сбежать от них с другой заменой. – Romain

Смежные вопросы