记录使用sparksql 写txt,csv等问题

由于是在内网工作无法截图,只是文字记录,见谅!

1.生成csv的方法
由于sparksql 1.5的版本导致很多函数是有bug的,经过多次尝试以下是生成csv的正确方法。
mave加入一个特殊的jar包

<groupId>com.databricks</groupId>

<artifactId>spark-csv_2.10</artifactId>

<version>1.0.3</version>

import org.apache.spark.sql
import org.apache.spark.{SparkConf,SparkContext}
import org.apache.spark.DataFrame
import com.databricks.spark.csv
import org.apache.spark.hive.HiveContext
val conf=new SparkConf().setMaster(“local”).setAppName(“firstTry”)
val sc =new SparkContext(conf)
val sqlContext=new HiveContext(sc)
val df=sqlContext.sql(“select * from abb limit 10000”)

一般提取某列或者某几列的时候是这样子写的:
df.select(“year”, “model”).save(“newcars.csv”, “com.databricks.spark.csv”)
但是有需求需要传入不定参数提取不定的列,则可以将需要提取的列放入到一个 Array 中,再如此调用:传入一个需要选取的列的字符串colums用,隔开列名
val string:Array[String]=colums.split(,)
df.select(string.head,string.tail: _*).save(path, “com.databricks.spark.csv”)
即可,可以写两个方法既能满足选取适合的列进行输出,也可以直接进行传输

2.生成txt方法
以上方法不变,仅仅只是把
生成的df进行转换,df.toJavaRdd.coalesce(1).saveAsTextfile(path).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值