HCatalog
 

PUT ddl/database/:db/table/:table

Description

Create a new HCatalog table. For more information, please refer to the Hive documentation.

URL

http://www.myserver.com/templeton/v1/ddl/database/:db/table/:table

Parameters

NameDescriptionRequired?Default
:db The database name Required None
:table The new table name Required None
group The user group to use when creating a table Optional None
permissions The permissions string to use when creating a table. Optional None
external Allows you to specify a location so that Hive does not use the default location for this table. Optional false
ifNotExists If true, you will not receive an error if the table already exists. Optional false
comment Comment for the table Optional None
columns A list of column descriptions, including name, type, and an optional comment. Optional None
partitionedBy A list of column descriptions used to partition the table. Like the columns parameter this is a list of name, type, and comment fields. Optional None
clusteredBy An object describing how to cluster the table including the parameters columnNames, sortedBy, numberOfBuckets. The sortedBy parameter includes the parameters columnName and order. For further information please refer to the examples below or to the Hive documentation. Optional None
format Storage format description including paraeters for rowFormat, storedAs and storedBy. For further information please refer to the examples below or to the Hive documentation. Optional None
location The HDFS path Optional None
tableProperties A list of table property names and values (key/value pairs) Optional None

The standard parameters are also supported.

Results

NameDescription
table The new table name
database The database name

Example

Curl Command

% curl -s -X PUT -HContent-type:application/json -d '{
 "comment": "Best table made today",
 "columns": [
   { "name": "id", "type": "bigint" },
   { "name": "price", "type": "float", "comment": "The unit price" } ],
 "partitionedBy": [
   { "name": "country", "type": "string" } ],
 "format": { "storedAs": "rcfile" } }' \
 'http://localhost:50111/templeton/v1/ddl/database/default/table/test_table?user.name=ctdean'

Curl Command (using clusteredBy)

% curl -s -X PUT -HContent-type:application/json -d '{
  "comment": "Best table made today",
  "columns": [
    { "name": "id", "type": "bigint"},
    { "name": "price", "type": "float", "comment": "The unit price" } ],
  "partitionedBy": [
    { "name": "country", "type": "string" } ],
  "clusteredBy": {
    "columnNames": ["id"],
    "sortedBy": [
      { "columnName": "id", "order": "ASC" } ],
    "numberOfBuckets": 10 },
  "format": {
    "storedAs": "rcfile",
    "rowFormat": {
      "fieldsTerminatedBy": "\u0001",
      "serde": {
        "name": "org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe",
        "properties": {
          "key": "value" } } } }
  } ' \
  'http://localhost:50111/templeton/v1/ddl/database/default/table/test_table_c?user.name=ctdean'

JSON Output

{
 "table": "test_table",
 "database": "default"
}

JSON Output (error)

{
  "statement": "use default; create table test_table_c(id bigint, price float comment ...",
  "error": "unable to create table: test_table_c",
  "exec": {
    "stdout": "",
    "stderr": "WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated...
        Hive history file=/tmp/ctdean/hive_job_log_ctdean_201204051335_2016086186.txt
        SLF4J: Class path contains multiple SLF4J bindings.
        SLF4J: Found binding in ...
        SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
        OK
        Time taken: 0.448 seconds
        FAILED: Error in semantic analysis: Operation not supported. HCatalog doesn't allow Clustered By in create table.
        ",
    "exitcode": 10
  }
}