日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2025/3/15 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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|
+---+-----+



?

轉載于:https://www.cnblogs.com/soyo/p/7647668.html

總結

以上是生活随笔為你收集整理的Spark SQL中 RDD 转换到 DataFrame (方法二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。