LearningSpark(9):解析SparkSQL的数据来源(parquet、json、csv、jdbc等)

以下源码在 org.apache.spark.sql.DataFrameReader/DataFrameWriter

format指定内置数据源

无论是load还是save都可以手动指定用来操作的数据源类型,format方法,通过eclipse查看相关源码,spark内置支持的数据源包括parquet(默认)、json、csv、text(文本文件)、 jdbc、orc,如图

1550670063721

def format(source: String): DataFrameWriter[T] = {
    this.source = source
    this}

private var source: String = df.sparkSession.sessionState.conf.defaultDataSourceName

def defaultDataSourceName: String = getConf(DEFAULT_DATA_SOURCE_NAME)
// This is used to set the default data source,默认处理parquet格式数据
val DEFAULT_DATA_SOURCE_NAME = buildConf("spark.sql.sources.default")
    .doc("The default data source to use in input/output.")
    .stringConf
    .createWithDefault("parquet")
列举csv方法使用

源码如下,可见其实本质就是format指定数据源再调用save方法保存

def csv(paths: String*): DataFrame = format("csv").load(paths : _*)		//可以指定多个文件或目录
def csv(path: String): Unit = {
    format("csv").save(path)
  }

可以看下我这篇文章:Spark1.x和2.x如何读取和写入csv文件

可选的option方法

还有就是这几个内置数据源读取或保存的方法都有写可选功能方法option,比如csv方法可选功能有(截取部分自认为有用的):

You can set the following CSV-specific opti

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值