1、to_csv()
1、path_or_buf =None: string or file handle, default None
File path or object, if None is provided the result is returned as a string.
路径或对象,如果没尘槐有提供,结果将返回为字符串。
2、sep : character, default ‘,’
Field delimiter for the output file.
默认字符 ‘ ,’
输出文件的字段分隔符。
3、na_rep : string, default ‘’
Missing data representation
字符串,默认为 ‘’
浮点数格式字符串
4、float_format : string, default None
Format string for floating point numbers
字符串,默认为 None
浮点数格式字符串
5、columns : sequence, optional Columns to write
顺序,可选列写入
6、header : boolean or list of string, default True
Write out the column names. If a list of strings is given it is assumed to be aliases for the column names
字符串或布尔列表,默认为true
写出列名。如果给定字符串列表,则假定为列名的别名。
7、index : boolean, default True
Write row names (index)
布尔值,默认为Ture
写入行名称(索引)
8、index_label : string or sequence, or False, default None
*Column label for index column(s) if desired. If None is given, and header and index are True, then the index names are used. A sequence should be given if the DataFrame uses MultiIndex. If False do not print fields for index names. Use index_label=False for easier importing in R
字符串或序列,或False,默认为None
如果需要,可以使用索引列的列标签。如果没有给出,且标题和索引为True,则使用索引名称。如果数据文件使用多索引,则应该使用这个序列。如果值为False,不打印索引字段。在R中使用 index_label=False 更容易导入索引.
9、encoding : string, optional
编码:字符串,可选
表示在输出文件中使用态兄迅的编码的字符串,Python 2上默认为“ASCII”和Python 3上默认为“UTF-8”。
10、compression : string, optional
字符串,可选项
表示在输出文件中使用的压缩的字符串,允许值为“gzip”、“bz2”、“xz”,仅在第一个参数是文件名时使用。
11、line_terminator : string, default ‘\n’
字符串,默认为 ‘\n’
在输出文件中使用的换行字符或字符序列帆此
12、quoting : optional constant from csv module
*CSV模块的可选常量
输出是否用引号,默认参数值为0,表示不加双引号,参数值为1,则每个字段都会加上引号,数值也会被当作字符串看待
13、quotechar : string (length 1), default ‘”’
*字符串(长度1),默认"
当quoting=1可以指定引号字符为双引号"或单引号'
14、doublequote : boolean, default True
布尔,默认为Ture
控制一个字段内的quotechar
15、escapechar : string (length 1), default None
字符串(长度为1),默认为None
在适当的时候用来转义sep和quotechar的字符
16、chunksize : int or None
int或None
一次写入行
17、tupleize_cols : boolean, default False
布尔值 ,默认为False
从版本0.21.0中删除:此参数将被删除,并且总是将多索引的每行写入CSV文件中的单独行
(如果值为false)将多索引列作为元组列表(如果TRUE)或以新的、扩展的格式写入,其中每个多索引列是CSV中的一行。
18、date_format : string, default None
字符串,默认为None
字符串对象转换为日期时间对象
19、decimal : string, default ‘.’
字符串,默认’。’
字符识别为小数点分隔符。例如。欧洲数据使用 ’,’
20、mode : str
模式:值为‘str’,字符串
Python写模式,默认“w”
此前一直使用HIVE的Insert overwrite到本地目录的方法进行文件导出,但问题多多。主要原因是分隔符经常出现在字段中,实 *** 中用竖杠|分隔问题较少。insert overwrite local directory '/url/lxb/hive'
row format delimited
fields terminated by ','
select * from table_name limit 100
此外也尝试使用HIVE -E的方法,再通过sed 's/x01/,/g'命令进行文件过滤。
两种效果均不是很理想,究其原因,主要是两种方法导出的文件都不返盯是标准CSV。
目前使用比较顺畅的方式是通过spark-shell2, 先把Hive表转化为DataFrame,再基于DataFrame.writer.csv()(DataFrameWriter.csv)导出到HDFS。
df = spark.sql("select * from test.student3")
df.write.csv("/HDFS目录")
hadoop fs -get /HDFS目录 XXX
----------------------------------- 2019-08-05更新--------------------------------------
beeline -n hive -u jdbc: hive2://XXXX:10000 --verbose=true --outputformat=csv2 -e "XXXXXXXX" >>XXX.csv
通过beeline导出HIVE数据至CSV较为稳定。
然后导出的数据编码为utf-8,需要进行转码。
iconv -f UTF-8 -t GBK XXX.csv to XXX_gbk.csv
有时漏辩和候转GBK会报错,可以选另外两种Excel可以直接打灶裂开的编码格式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)