Python直接操作hdfs,包括追加数据文件到hdfs文件

#!coding:utf-8
import sys
from hdfs.client import Client #设置utf-8模式
reload(sys)
sys.setdefaultencoding( "utf-8" ) #关于python操作hdfs的API可以查看官网:
#https://hdfscli.readthedocs.io/en/latest/api.html #读取hdfs文件内容,将每行存入数组返回
def read_hdfs_file(client,filename):
#with client.read('samples.csv', encoding='utf-8', delimiter='\n') as reader:
# for line in reader:
#pass
lines = []
with client.read(filename, encoding='utf-8', delimiter='\n') as reader:
for line in reader:
#pass
#print line.strip()
lines.append(line.strip())
return lines #创建目录
def mkdirs(client,hdfs_path) :
client.makedirs(hdfs_path) #删除hdfs文件
def delete_hdfs_file(client,hdfs_path):
client.delete(hdfs_path) #上传文件到hdfs
def put_to_hdfs(client,local_path,hdfs_path):
client.upload(hdfs_path, local_path,cleanup=True) #从hdfs获取文件到本地
def get_from_hdfs(client,hdfs_path,local_path):
download(hdfs_path, local_path, overwrite=False) #追加数据到hdfs文件
def append_to_hdfs(client,hdfs_path,data):
client.write(hdfs_path, data,overwrite=False,append=True) #覆盖数据写到hdfs文件
def write_to_hdfs(client,hdfs_path,data):
client.write(hdfs_path, data,overwrite=True,append=False) #移动或者修改文件
def move_or_rename(client,hdfs_src_path, hdfs_dst_path):
client.rename(hdfs_src_path, hdfs_dst_path) #返回目录下的文件
def list(client,hdfs_path):
return client.list(hdfs_path, status=False) #client = Client(url, root=None, proxy=None, timeout=None, session=None)
#client = Client("http://hadoop:50070") #move_or_rename(client,'/input/2.csv', '/input/emp.csv')
#read_hdfs_file(client,'/input/emp.csv')
#put_to_hdfs(client,'/home/shutong/hdfs/1.csv','/input/')
#append_to_hdfs(client,'/input/emp.csv','我爱你'+'\n')
#write_to_hdfs(client,'/input/emp.csv','我爱你'+'\n')
#read_hdfs_file(client,'/input/emp.csv')
#move_or_rename(client,'/input/emp.csv', '/input/2.csv')
#mkdirs(client,'/input/python')
#print list(client,'/input/')
#chown(client,'/input/1.csv', 'root')

Python操作hdfs的更多相关文章

  1. 使用python操作hdfs,并grep想要的数据

    代码如下: import subprocess for day in range(24, 30): for h in range(0, 24): filename = "tls-metada ...

  2. hadoop 》》 django 简单操作hdfs 语句

    >> from django.shortcuts import render # Create your views here. from hdfs.client import Clien ...

  3. 使用Python访问HDFS

    最近接触到大数据,对于Skpark和Hadoop的料及都停留在第一次听到这个名词时去搜一把看看大概介绍免得跟不上时代的层次. 在实际读了点别人的代码,又自己写了一些之后,虽然谈不上理解加深,至少对于大 ...

  4. 2.如何使用python连接hdfs

    总所周知,python是一门很强大的语言,主要在于它有着丰富的第三方模块,当然连接hdfs的模块也不例外. 在python中有一个模块也叫hdfs,可以使用它连接hadoop的hdfs.直接pip i ...

  5. 【转】Python 访问 HDFS

    1.前言 hdfs , Hadoop Distributed File System.Hadoop的分布式文件系统,安全行和扩展性没得说. 访问HDFS的方式有以下几种: 命令行方式:FS Shell ...

  6. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  7. Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  8. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  9. Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

随机推荐

  1. openAS2搭建

    概要 秘钥生成工具 :链接:https://pan.baidu.com/s/1C3fnlkpu36mmpu8Y1fDnUA 密码:pg4k openas2  :链接:https://pan.baidu ...

  2. 【转】OpenGL随笔(1)—— mipmap 详解

    注:本文使用的所有 OpenGL 函数来自 OpenGL 4.5,优先使用 DSA. 使用 mipmap 时,OpenGL 根据被映射对象的大小(单位是像素),自动决定使用纹理图的哪个分辨率级别.mi ...

  3. docker下 zookeeper集群

    首先创建所需的文件夹 mkdir -p /data/{data1,data2,data3} mkdir -p /data/{datalog1,datalog2,datalog3} docker-com ...

  4. mongo_1 新手之路

    mongodb  进入.在bin目录下   至于安装各位自己查资料吧 .不废话了 直接上图.这种表示已经成功进入mongo 本人mongo  数据库存放地址.如有需要可以清空可以自己删除. 接下来就是 ...

  5. Openssl genpkey命令

    一.简介 genpkey命令用于产生各种密钥(RSA.DSA.DH.EC等)的私钥值. 二.语法 openssl genpkey [-out filename] [-outform PEM | DER ...

  6. Part4_lesson1---Bootloader设计蓝图

    1.bootloader的作用 2.u-boot是bootloader业界的老大 u-boot分为自主模式和开发模式 3.建立U-boot工程 uboot不能在window下面进行解压,因为在wind ...

  7. 黑盒测试实践-任务进度-Day03

    任务进度11-28 使用工具 selenium 小组成员 华同学.郭同学.穆同学.沈同学.覃同学.刘同学 任务进度 经过了前两天的学习任务的安排,以下是大家的任务进度: 华同学(任务1) 1.今天就接 ...

  8. Python 面向对象class(2)

    Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...

  9. web大文件上传控件-监控f_create流程-Xproer.HttpUploader6

    监控f_create流程 1.打开ie,f12 2.启动网络监控 点击开始捕获 上传文件,然后查看监控 将监控信息转到详细视图 向f_create提交的数据 f_create返回值

  10. ArcGIS Engine 中对栅格数据的波段信息统计 (转)

    先打开栅格文件所在的工作空间(文件),然后获取其所有的波段,访问每一个波段有时候波段中已经有直方图或统计信息,有时候没有这些信息,可以使用ComputeStatsAndHist()函数对其进行计算(数 ...