HCatalog apis only support partition keys of type string or
char/varchar even though Hive supports all more types in partitioning
keys.

Venkat
On Fri, Jul 27, 2018 at 9:40 AM Sowjanya Kakarala <sowja...@agrible.com> wrote:
>
> Hi everyone,
>
> As per the new command line options in sqoop example for 
> --hcatalog-partition-keys and --hcatalog-partition-values are showing the 
> values in integer type but when i try that it throws an error for me as it 
> only supports string.
>
> https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_new_command_line_options
>
> SQOOP COMMAND:
>
> sqoop import --connect host:5432/db --query "select yr2018[1] as 
> data,'2018-01-01' as time_stamp from tbl where cell_id=1 and \$CONDITIONS" 
> --username uname --password 'pwd' --hcatalog-database db --hcatalog-table tbl 
> --hcatalog-partition-keys cell_id --hcatalog-partition-values 1 
> --map-column-java time_stamp=String
>
>
>
> ERROR:
>
> 18/07/27 16:34:12 ERROR tool.ImportTool: Import failed: java.io.IOException: 
> MetaException(message:Filtering is supported only on partition keys of type 
> string)
>
> at 
> org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setFilter(HCatInputFormat.java:120)
>
> at 
> org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureHCat(SqoopHCatUtilities.java:391)
>
> at 
> org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureImportOutputFormat(SqoopHCatUtilities.java:850)
>
> at 
> org.apache.sqoop.mapreduce.ImportJobBase.configureOutputFormat(ImportJobBase.java:102)
>
> at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:263)
>
> at org.apache.sqoop.manager.SqlManager.importQuery(SqlManager.java:748)
>
> at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:522)
>
> at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)
>
> at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
>
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
>
> at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
>
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
>
> at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
>
> at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
>
> Caused by: MetaException(message:Filtering is supported only on partition 
> keys of type string)
>
> at 
> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_partitions_by_filter_result$get_partitions_by_filter_resultStandardScheme.read(ThriftHiveMetastore.java)
>
> at 
> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_partitions_by_filter_result$get_partitions_by_filter_resultStandardScheme.read(ThriftHiveMetastore.java)
>
> at 
> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_partitions_by_filter_result.read(ThriftHiveMetastore.java)
>
> at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:86)
>
> at 
> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_get_partitions_by_filter(ThriftHiveMetastore.java:2599)
>
> at 
> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_partitions_by_filter(ThriftHiveMetastore.java:2583)
>
> at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.listPartitionsByFilter(HiveMetaStoreClient.java:1232)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:498)
>
> at 
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:169)
>
> at com.sun.proxy.$Proxy5.listPartitionsByFilter(Unknown Source)
>
> at 
> org.apache.hive.hcatalog.mapreduce.InitializeInput.getInputJobInfo(InitializeInput.java:113)
>
> at 
> org.apache.hive.hcatalog.mapreduce.InitializeInput.setInput(InitializeInput.java:88)
>
> at 
> org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setFilter(HCatInputFormat.java:118)
>
> ... 13 more
>
>


-- 
Regards

Venkat

Reply via email to