如何将文件从本地服务器位置移动到hdfs?

ikfrs5lh  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(417)

我的服务器上有一个文件

/user/data/abc.csv

我需要在文件中的数据之上创建一个配置单元表。所以我需要把这个文件移到hdfs的位置

/user/hive/warehouse/xyz.db

我们如何使用python做到这一点?

6yt4nkrj

6yt4nkrj1#

hadoop fs-put命令可用于将文件从本地文件系统放入hdfs。

dfuffjeb

dfuffjeb2#

首先,您需要从服务器检索文件。使用此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()

一旦文件下载到本地,然后执行通常的配置单元查询从本地加载数据或将数据放入hdfs然后加载到配置单元。
将数据直接从本地加载到配置单元:

LOAD DATA local INPATH '/user/data/abc.csv' into table <table name>;

将数据加载到hdfs:

hadoop fs -copyFromLocal ~/user/data/abc.csv /your/hdfs/path

然后使用配置单元查询将其加载到配置单元。

LOAD DATA INPATH '/your/hdfs/path' into table <table name>;

相关问题