You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "He Yongqiang (JIRA)" <ji...@apache.org> on 2009/03/31 17:23:50 UTC

[jira] Updated: (HIVE-360) Generalize the FileFormat Interface in Hive

     [ https://issues.apache.org/jira/browse/HIVE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

He Yongqiang updated HIVE-360:
------------------------------

    Attachment: hive-360-2009-03-31.patch

Attached hive-360-2009-03-31.patch, a draft version.
1) add a new HiveOutputFormat
2) wrap existing IgnoreKeyTextOutputFormat and SequenceFileOutputFormat to HiveIgnoreKeyTextOutputFormat and HiveSequenceFileOutputFormat respectly. 
4) add a HiveOutputFormatUtils for backward compability
3) factor FileSinkOperator to use HiveOutputFormat to create write

> Generalize the FileFormat Interface in Hive
> -------------------------------------------
>
>                 Key: HIVE-360
>                 URL: https://issues.apache.org/jira/browse/HIVE-360
>             Project: Hadoop Hive
>          Issue Type: Improvement
>            Reporter: Zheng Shao
>         Attachments: hive-360-2009-03-31.patch
>
>
> Currently the FileFormat support in Hive is not generalized - we do "if ... else" to support TextFileFormat and SequenceFileFormat. There is no way to support a 3rd one without changing the "if...else" structure. We should make an interface for the FileFormat need for Hive.
> The OutputFileFormat interface that Hive requires will contain one more method than the Hadoop OutputFileFormat - create a File with a specific name.
> Hive.g:409 (Hive.g already supports the custom file format but DDLSemanticAnalyzer.java is not recognizing it yet
> {code}
> KW_STORED KW_AS KW_INPUTFORMAT inFmt=StringLiteral KW_OUTPUTFORMAT outFmt=StringLiteral
> {code}
> Please add the handling of TOK_TABLEFILEFORMAT here:
> DDLSemanticAnalyzer.java:223
> {code}
>         case HiveParser.TOK_TBLSEQUENCEFILE:
>         ...
> {code}
> Please add the handling of custom outputFormat here by adding a new interface (and cast the user-provided file format to that interface), instead of doing "if ... else"
> FileSinkOperator.java:129-174:
> {code}
>       if(outputFormat instanceof IgnoreKeyTextOutputFormat) {
>         finalPath = new Path(Utilities.toTempPath(conf.getDirName()), Utilities.getTaskId(hconf) +
>                              Utilities.getFileExtension(jc, isCompressed));
>       ...
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.