600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Spark SQL中 RDD 转换到 DataFrame (方法二)

Spark SQL中 RDD 转换到 DataFrame (方法二)

时间:2021-06-11 09:14:24

相关推荐

Spark SQL中 RDD 转换到 DataFrame (方法二)

强调它与方法一的区别:当DataFrame的数据结构不能够被提前定义。例如:(1)记录结构已经被编码成字符串 (2) 结构在文本文件中,可能需要为不同场景分别设计属性等

以上情况出现适用于以下方法。

1.people.txt:

soyo8, 35

小周, 30

小华, 19

soyo,88

/*** Created by soyo on 17-10-10.* 使用编程方式定义RDD模式*/import org.apache.spark.sql.types._import org.apache.spark.sql.{Row, SparkSession}object RDD_To_DataFrame2 {def main(args: Array[String]): Unit = {val spark=SparkSession.builder().getOrCreate()val peopleRDD=spark.sparkContext.textFile("file:///home/soyo/桌面/spark编程测试数据/people.txt")val schema_S="name age"val fields=schema_S.split(" ").map(x=>StructField(x,StringType,nullable = true))//生成模式val schema=StructType(fields)val rowRDD=peopleRDD.map(_.split(",")).map(x=>Row(x(0),x(1).trim))val peopleDF=spark.createDataFrame(rowRDD,schema)peopleDF.createOrReplaceTempView("people2")val results=spark.sql("select * from people2")results.show()results.groupBy("age").count().show()}}

结果:

+-----+---+

| name|age|

+-----+---+

|soyo8| 35|

| 小周| 30|

| 小华| 19|

| soyo| 88|

+-----+---+

+---+-----+

|age|count|

+---+-----+

| 30| 1|

| 35| 1|

| 19| 1|

| 88| 1|

+---+-----+

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。