spark 通过 RDD 从HDFS文件加载JSON文件到sql表

本文介绍了如何在Spark中利用RDD读取HDFS上的JSON文件并将其转换为表格。首先,解释了RDD的核心概念,强调其不可变性和分布式特性。接着,展示了如何创建RDD并读取JSON文件。最后,通过将RDD写入临时SQL表并遍历内容,展示了RDD转换成表格的过程,虽然存在一些局限性,但不失为一种实用的方法。
摘要由CSDN通过智能技术生成

RDD定义

RDD全称是Resilient Distributed Dataset, 是spark的核心抽象层,通过它可以读取多种文件,这里演示如何读取hdfs文件。所有spark的工作都是发生在RDD上,比如创建新的RDD,转换已有的RDD,对现有的RDD计算求得结果。

RDD在spark中是不可变的(immutable)对象集合,RDD可以被划分成多个分区,存放在不同的节点。


创建RDD

有两种方法,一种是加载外部的数据集,比如下面加载HDFS的文件, 运行在scalar-shell中:

val textFile = sc.textFile("hdfs://namenode-host:9000/input/dean/obd_hdfs-writer-4-9-1447126914492.log")
textFile.count()
res1: Long = 3574 

另一种方法是在driver program中用SparkContext的paralleize方法。这里暂时不讨论。

读取JSON文件

上面的log文件内容其实是json格式的,所以可以换种读法:

scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext: org.apache.spark.sql.SQLContext = org.apache.spark.sql.SQLContext@2f92b5a1

scala> val path = "hdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值