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

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).

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信