首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在存储为文本文件时,从中删除列名。

在存储为文本文件时,从中删除列名。
EN

Stack Overflow用户
提问于 2017-02-02 19:04:10
回答 2查看 3K关注 0票数 0

我的数据输出如下,

DF.show(2)

代码语言:javascript
运行
复制
+--------------+  
|col1|col2|col3|  
+--------------+  
|  10|  20|  30|  
|  11|  21|  31|  
+--------------+ 

将其保存为文本文件-DF.rdd.saveAsTextFile(“路径”)

代码语言:javascript
运行
复制
Row(col1=u'10', col2=u'20', col3=u'30')  
Row(col1=u'11', col2=u'21', col3=u'31')  

dataframe有数百万行20列,如何将其保存为如下所示的文本文件,即没有列名和python。

代码语言:javascript
运行
复制
10|20|30  
11|21|31 

在创建初始的RDD时,我使用了下面的代码来删除独角兽,尽管仍然得到了独角兽,

代码语言:javascript
运行
复制
data = sc.textFile("file.txt")
trans = data.map(lambda x: x.encode("ascii", "ignore").split("|"))  

提前谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-02 19:56:38

我觉得你可以

.map(lambda l: (l[0] + '|' + l[1] + '|' + l[3])).saveAsTextFile(...)

票数 1
EN

Stack Overflow用户

发布于 2017-02-02 19:28:12

在spark 2.0中,您可以直接将数据输出到csv,这就是我认为您需要的全部内容。请参阅:https://spark.apache.org/docs/2.0.0/api/java/org/apache/spark/sql/DataFrameWriter.html

所以在你的情况下,你可以做一些事情

df.write.option("sep", "|").option("header", "false").csv("some/path/")

有一个databricks插件,它在spark 1.x中提供了这个功能

https://github.com/databricks/spark-csv

至于将unicode字符串转换为ascii,请参见以下问题:Convert a Unicode string to a string in Python (containing extra symbols)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42010315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档