How to use a specified Hive database when using Sqoop import

19,640

Solution 1

Off the top of my head i recall you can specify --hive-table foo.tb

where foo is your hive database and tb is your hive table.

so in your case it would be:

sqoop import --connect jdbc:mysql://remote-ip/db --username xxx --password xxx --table tb --hive-import --hive-table foo.tb

As a footnote, here is the original jira issue https://issues.apache.org/jira/browse/SQOOP-322

Solution 2

Hive database using Sqoop import:

sqoop import --connect jdbc:mysql://localhost/arun --table account --username root --password root -m 1 --hive-import **--hive-database** company **--create-hive-table --hive-table** account --target-dir /tmp/customer/ac

Solution 3

You can specify the database name as a part of the --hive-table parameter, e.g. "--hive-table foo.tb".

There is a new request to add a special parameter for the database that is being tracked: SQOOP-912.

Share:
19,640
JustFF
Author by

JustFF

Updated on June 17, 2022

Comments

  • JustFF
    JustFF almost 2 years
    sqoop import --connect jdbc:mysql://remote-ip/db --username xxx --password xxx --table tb --hive-import
    

    The above command imports table tb into the 'default' Hive database.

    Can I use other database instead?

  • bzimage
    bzimage about 5 years
    strange: --hive-database seems to be an undocumented option [sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html] but it works for me as exactly expected. My sqoop-version on cloudera returns: INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.13.0 Sqoop 1.4.6-cdh5.13.0
  • Sanchit Kumar
    Sanchit Kumar almost 5 years
    This should be the accepted answer. As in certain cases, we need to specify the database name.