Creating DataFrames spark当中重要的部分DataFrames

Creating DataFrames

官网:https://spark.apache.org/docs/latest/sql-getting-started.html

With a SparkSession, applications can create DataFrames from an existing RDD, from a Hive table, or from Spark data sources.

As an example, the following creates a DataFrame based on the content of a JSON file:

启动spark
[hadoop@hadoop001 spark-2.4.0-bin-2.6.0-cdh5.7.0]$ cd bin 
[hadoop@hadoop001 bin]$ ./spark-shell
找到官方提供的json文件
[hadoop@hadoop001 resources]$ pwd
/home/hadoop/app/spark-2.4.0-bin-2.6.0-cdh5.7.0/examples/src/main/resources
[hadoop@hadoop001 resources]$ cat people.json
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":19}
scala> val df = spark.read.json("file:///home/hadoop/app/spark-2.4.0-bin-2.6.0-cdh5.7.0/examples/src/main/resources/people.json")
[Stage 0:>                                                          (0 + 1)                                                                           df: org.apache.spark.sql.DataFrame = [age: bigint, name: string]

scala> df.show()
+----+-------+
| age|   name|
+----+-------+
|null|Michael|
|  30|   Andy|
|  19| Justin|
+----+-------+

用spark sql来处理数据是非常方便的,他的底层是外部数据源实现的

扩展

scala> spark.table("ruoze_emp").show  

这个读hive在里面的文件在这个运行之前一定要把hdfs启动起来

在idea上如何操作

pom中要下载hive的依赖

<dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive_2.11</artifactId>
      <version>${spark.version}</version>
    </dependency>

然后:

package g5.learning

import org.apache.spark.sql.SparkSession

object SparkSessionApp {
  def main(args: Array[String]): Unit = {
    val  sparksession= SparkSession.builder().appName("SparkSessionApp")
      .master("local[2]")
      .enableHiveSupport()//使用到hive一定要开启这个
      .getOrCreate()


//    sparksession.sparkContext.parallelize(Array(1,2,3,4)).collect().foreach( println)


    sparksession.table("ruoze_emp").show
    sparksession.stop()
  }

}

.enableHiveSupport()//使用到hive一定要开启这个
在windows上跑hive还是很麻烦的,还需要很多操作,获取文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值