我的服务器上有一个文件
/user/data/abc.csv
我需要在文件中的此数据之上创建一个 Hive 表。所以我需要将此文件移动到hdfs位置
/user/hive/warehouse/xyz.db
我们如何使用python做到这一点?
首先,您需要从服务器检索文件。使用此 pyhton 代码将其检索到本地计算机。
import ftplib
path = '/user/data/'
filename = 'abc.csv'
ftp = ftplib.FTP("Server IP")
ftp.login("UserName", "Password")
ftp.cwd(path)
ftp.retrbinary("RETR " + filename ,open(filename, 'wb').write) #Download the file from server to local on same path.
ftp.quit()
一旦文件下载到本地,然后执行通常的hive查询以从本地加载数据或将数据放入HDFS然后加载到hive。
将数据直接从本地加载到配置单元:
LOAD DATA local INPATH '/user/data/abc.csv' into table <table name>;
将数据加载到 HDFS:
hadoop fs -copyFromLocal ~/user/data/abc.csv /your/hdfs/path
然后使用 Hive 查询将其加载到 Hive。
LOAD DATA INPATH '/your/hdfs/path' into table <table name>;
Hadoop fs -put 命令可用于将文件从本地文件系统放入 HDFS。