Spark DataFrame的创建

目录

1. 环境准备

2. 从 txt 文件创建 DataFrame

3. 从 RDD中创建 DataFrame

4. 一些错误

1. 环境准备

开启虚拟机、开启hadoop集群、开启spark集群、开启spark-shell、在spark-shell中导入隐式转换包

hadoop集群 输入:start-all.sh

spark集群 输入:cd /export/servers/spark

................. 输入:sbin/start-all.sh

spark-shell 输入:bin/spark-shell --master local[2]

导包 ..........输入:import spark.imlicits._

Spark DataFrame的创建_第1张图片

2. 从 txt 文件创建 DataFrame

2.1 文件准备

Spark DataFrame的创建_第2张图片

Spark DataFrame的创建_第3张图片

2.2 创建DataFrame

在spark-shell中

输入:val personDF = spark.read.text("/spark/person.txt")

查看 输入: personDF.show()

输入:val wordDF= spark.read.text("file:///export/data/word.txt")

输入:wordDF.show()

输入:wordDF.printSchema()

Spark DataFrame的创建_第4张图片

3. 从 RDD中创建 DataFrame

3.1 创建一个RDD,并使用map算子,将每行按照单词拆分,,生成一个新的RDD

输入: val lineRDD = sc.textFile("/spark/person.txt").map(_.split(" "))

3.2 定义一个样例类

输入:case class Person(id:Int,name:String,age:Int)

3.3 将lineRDD 转换成 Person类RDD

输入:val personRDD=lineRDD.map(x=>Person(x(0).toInt,x(1),x(2).toInt))

3.4 将RDD 转换成 DataFrame

输入:val personDF = personRDD.toDF()

3.5 打印查看

输入:personDF.printSchema()

Spark DataFrame的创建_第5张图片

3.6 本地文件转为RDD再转为DataFrame

/export/data目录下,word.txt文件存在,且有两个字段,没有空白行

Spark DataFrame的创建_第6张图片

4. 一些错误

4.1  没有用英文括号

 

4.2 源文件中只有两个字段,但在case中有三个字段。

解决:修改源文件,并重新上传至HDFS(第二张图片有操作)。本文章的源文件是person.txt

Spark DataFrame的创建_第7张图片

 4.3 数据溢出

解决:源文件中,后面有很多空白,进入源文件将字符后面空白删掉。

Spark DataFrame的创建_第8张图片

4.4 没有把文件上传到HDFS中

解决:将前面sc.text(.....) ....这里的文件上传到HDFS中

4.5 一长串连续看不到头的错误

1.Spark启动时hive出现another instance of derby may have already booted the database的错误_sunlu1124的博客-CSDN博客

你可能感兴趣的:(spark,spark,scala)