我的服务器上的某个位置有一个文件
/user/data/abc.csv
我需要在文件中的此数据之上创建一个配置单元表。所以我需要将此文件移到hdfs位置
/user/hive/warehouse/xyz.db
我们如何使用python做到这一点?
答案 0 :(得分:0)
首先,您需要从服务器检索文件。使用此pyhton代码将其检索到本地计算机。
rows: {
afterTemplate: function(row, data, index) {
$('#delete-confirmation-dialog-' + data._id).on('click', function() {
$.confirm({
title: 'Delete?',
content: 'Are you sure?',
icon: 'fa fa-question-circle',
animation: 'scale',
closeAnimation: 'scale',
opacity: 0.5,
buttons: {
'confirm': {
text: 'Delete',
btnClass: 'btn-red',
action: function() {
$.confirm({
content: function() {
this.setTitle('Result');
this.setContent('Process...');
return $.ajax({
url: Urlapi + '/event/remove/' + data._id,
// headers: _self.jwt(),
dataType: 'json',
method: 'patch'
}).done(function(response) {
this.setContentAppend('<div>Done!</div>');
( < any > $('.m_eventdatatable')).mDatatable('reload');
}).fail(function() {
this.setContentAppend('<div>Fail!</div>');
});
},
});
}
},
cancel: function() {
$.alert('Record canceled to delete');
},
}
});
});
},
},
一旦文件下载到本地,则执行常规的配置单元查询以从本地加载数据或将数据放入HDFS,然后加载至配置单元。
直接从本地将数据加载到配置单元:
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>;
然后使用配置单元查询将其加载到配置单元。
hadoop fs -copyFromLocal ~/user/data/abc.csv /your/hdfs/path
答案 1 :(得分:-1)
hadoop fs -put命令可用于将文件从本地文件系统放入HDFS。