当前位置:   article > 正文

SparkSQL基本操作----作业二_并按“id:1,name:ella,age:36”的格式

并按“id:1,name:ella,age:36”的格式

题目:

编程 实 现将 RDD 转换 为 DataFrame 源 文件 内容 如下( 包含 id, name, age):

1, Ella, 36

2, Bob, 29

3, Jack, 29

请将 数据 复制 保存 到 Linux 系统 中, 命名为 employee.txt, 实现 从 RDD 转换 得

到 DataFrame, 并按“ id: 1, name: Ella, age: 36” 的 格式 打 印出 DataFrame 的 所有

数据。 请写出程序 代码。

 

 

代码:

  1. import org.apache.spark.sql.SparkSession
  2. import org.apache.spark.sql.types.StringType
  3. import org.apache.spark.sql.types.StructField
  4. import org.apache.spark.sql.types.StructType
  5. import org.apache.spark.sql.Row
  6. import org.apache.spark.sql.types.IntegerType
  7. object homework {
  8. case class Student(id:Int,name:String,age:Int)
  9. def main(args:Array[String])
  10. {
  11. val spark=SparkSession.builder().master("local").appName("RDD2Dataset").getOrCreate()
  12. import spark.implicits._
  13. dynamicCreate(spark)
  14. }
  15. /**
  16. * 动态转换
  17. * @param spark
  18. */
  19. private def dynamicCreate(spark:SparkSession):Unit={
  20. val stuRDD=spark.sparkContext.textFile("E:/file/employee.txt")
  21. import spark.implicits._
  22. val schemaString="id,name,age"
  23. val fields=schemaString.split(",").map(fieldName => StructField(fieldName, StringType, nullable = true))
  24. val schema=StructType(fields)
  25. val rowRDD=stuRDD.map(_.split(",")).map(parts⇒Row(parts(0),parts(1),parts(2)))
  26. val stuDf=spark.createDataFrame(rowRDD, schema)
  27. stuDf.printSchema()
  28. stuDf.createOrReplaceTempView("people")
  29. // val nameDf=spark.sql("select name from people where age<20")
  30. // //nameDf.write.text("result") //将查询结果写入一个文件
  31. // nameDf.show()
  32. val results = spark.sql("SELECT id,name,age FROM people")
  33. results.map(attributes => "id: " + attributes(0)+","+"name:"+attributes(1)+","+"age:"+attributes(2)).show()
  34. }
  35. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/498786
推荐阅读
相关标签
  

闽ICP备14008679号