请教“spark如何截取csv文件的前几列并保存”

diudiu2025 2016-12-15 10:14:04
我的代码是这样的
scala> val r1 = sc.textFile("D:/item.csv").map(x => x.split(",")).map(x => List(
x(0),x(1),x(2),x(3),x(4),x(5)).toArray).mapPartitions{x => val stringWriter = ne
w StringWriter(); val csvWriter = new CSVWriter(stringWriter); csvWriter.writeAl
l(x.toList); Iterator(stringWriter.toString)}.saveAsTextFile("D:/result/r1")
...全文
1615 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandra_csdn 2017-09-28
  • 打赏
  • 举报
回复
我试了试,这样只能提取连续的前几列,能不能提取不连续的列呢?
a95473004 2016-12-28
  • 打赏
  • 举报
回复
val sspbidSchema = StructType(Array( StructField("req_id", StringType, true), StructField("creative_id", StringType, true), StructField("group_id", StringType, true), StructField("user_ip", StringType, true))) val df = spark.read.schema(sspbidSchema).csv("ddd").select("req_id").write.csv("ddd") 我用的是2.0
LinkSe7en 2016-12-23
  • 打赏
  • 举报
回复
你应该用SparkSQL的SQLContext(2.0+为SparkSession)读取csv,然后用SQL select你要的列,然后write.csv就可以了
diudiu2025 2016-12-20
  • 打赏
  • 举报
回复
自己再顶一下
diudiu2025 2016-12-15
  • 打赏
  • 举报
回复
补充: 1,这是Windows上的 2,请问可以直接保存成一个CSV文件吗?

1,261

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧