我試圖將資料匯入RDS中的一個表。這些資料是parquet檔案格式的,并且存在于s3中。
我想用Sqoop將資料從s3匯入HDFS,然后用Sqoop將其匯出到RDS表中。我能夠找到從HDFS匯出資料到RDS的命令。但我找不到從S3匯入parquet資料的命令。能否請您幫助解決在這種情況下如何構建sqoop import命令。
uj5u.com熱心網友回復:
你可以使用spark來將資料從s3復制到HDFS。
閱讀這個博客以了解更多細節。
uj5u.com熱心網友回復:
對我來說,似乎很簡單,最好的方法是如下:
。創建外部表,如果不存在parquet_table(<列名><列的資料型別>)存盤為parquet。
LOAD DATA INPATH 's3a://<bucket_name>/<parquet_file>' INTO table parquet_table
- 在Hive中創建一個CSV表,并將Parquet表中的資料載入其中 。
創建外部表,如果不存在csv_table(<列名> <列的資料型別>)
行格式的欄位以','結尾。
存盤為文本檔案
位置'hdfs:///user/hive/warehouse/csvdata'。
- 現在我們在Hive中擁有一個CSV/文本檔案表,Sqoop可以輕松地將該表從HDFS匯出到MySQL表RDS。
export --table <mysql_table_name> --export-dir hdfs://user/hive/warehouse/csvdata --connect jdbc:mysql://<host>:3306/<db_name> --username <username> --password-file hdfs://user/test/mysql. password --batch -m 1 --input-null-string "N" --input-null-non-string "N" --columns <要匯出的列名,列名之間沒有空格>。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/330231.html
標籤:
下一篇:this.file.listDir在Android上不會回傳externalRootDirectory下的檔案夾。
