Spark之SparkSql
2024-08-25 21:29:26
-- Spark SQL 以编程方式指定模式
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val employee = sc.textFile("/root/wangbin/employee.txt")
1201,satish,25
1202,krishna,28
1203,amith,39
1204,javed,23
1205,prudvi,23
val schemaString = "id,name,age"
import org.apache.spark.sql.Row;
import org.apache.spark.sql.types.{StructType, StructField, StringType};
val schema = StructType(schemaString.split(",").map(fieldName => StructField(fieldName, StringType, true)))
val rowRDD = employee.map(_.split(",")).map(e => Row(e(0), e(1), e(2)))
-- 通过使用roRDDdata和模式(SCHEMA)变量创建DataFrame。
val employeeDF = sqlContext.createDataFrame(rowRDD, schema)
-- 使用以下命令将数据帧存储到名为employee的表中。
employeeDF.registerTempTable("employee2")
-- 使用以下语句从employee表中选择所有记录。
val allrecords = sqlContext.sql("SELECT * FROM employee2")
-- 查看所有记录数据帧的结果数据
allrecords.show()
+----+-------+---+
| id| name|age|
+----+-------+---+
|1201| satish| 25|
|1202|krishna| 28|
|1203| amith| 39|
|1204| javed| 23|
|1205| prudvi| 23|
+----+-------+---+
最新文章
- 1_MVC+EF+Autofac(dbfirst)轻型项目框架_core层(以登陆为例)
- Django框架学习
- Java基础学习总结 -- 图形用户界面GUI
- Android 写模块化代码注意事项
- Scala命令设置JVM参数的规则
- 《Linux内核设计与实现》CHAPTER4阅读梳理
- Kakfa
- (转)RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- 深入体会__cdecl与__stdcall
- 新生命组件XAgent使用心得
- linux常用的监控命令
- mysql-索引与优化
- Python的字符编码
- HDU 2296:Ring
- Hadoop:Hadoop单机伪分布式的安装和配置
- 嵌入AppBar并且带搜索建议的搜索框(Android)
- 10款CSS3按钮 - 程序员再也不用为按钮设计而发愁了...
- 内省Introspector(反射操作javaBean)
- PHP返回Json数据函数封装
- Emacs 启动优化二三事