Spark装载数据源

Spark装载CSV数据源

  • 文件预览

在这里插入图片描述

  • 使用SparkContext

    val lines = sc.textFile("file:///home/kgc/data/users.csv")
    val fields = lines.mapPartitionsWithIndex((idx, iter) => if (idx == 0) iter.drop(1) else iter).map(l => l.split(","))
    val fields = lines.filter(l=>l.startsWith("user_id")==false).map(l=>l.split(","))  //移除首行,效果与上一行相同
    

装载JSON数据源

正常json文件

  • 文件预览

在这里插入图片描述

  • 代码加载
val frame = spark.read.format("json").load("D:\\study files\\Spark\\test\\test.json")
frame.show()

在这里插入图片描述

部分包含json文件

  • 文件预览

在这里插入图片描述

  • 代码实现
val txt = spark.sparkContext.textFile("D:\\study files\\Spark\\test\\test.log")
val frame = txt.map(_.split(" ")).map(x=>(x(0),x(1),x(2),x(3))).toDF("no","action","info","times")
frame.show()

在这里插入图片描述

关于算子get_json_object的使用:(将数据转为二维表)

val txt = spark.sparkContext.textFile("D:\\study files\\Spark\\test\\test.log")
val frame = txt.map(_.split(" ")).map(x=>(x(0),x(1),x(2),x(3))).toDF("no","action","info","times")
frame.select($"no",$"action",
      get_json_object($"info","$.name").as("name"),
      get_json_object($"info","$.age").as("age"),$"times"
    ).show()

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值