Spark 2.0以前版本:
val sparkConf = new SparkConf().setAppName("soyo")
    val spark = new SparkContext(sparkConf)
Spark 2.0以后版本:(上面的写法兼容)
直接用SparkSession:
val spark = SparkSession
      .builder
      .appName("soyo")
      .getOrCreate()
    var tc = spark.sparkContext.parallelize(数据).cache() import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.sql.hive._ case class Persons(name:String,age:Int)
case class Record(key: Int, value: String) object rdd_to_dataframe_parquet {
val warehouseLocation = "file:${system:user.dir}/spark-warehouse"
val spark=SparkSession.builder().config("spark.sql.warehouse.dir",warehouseLocation).enableHiveSupport().getOrCreate()
import spark.implicits._
def main(args: Array[String]): Unit = {
spark.sql("CREATE TABLE IF NOT EXISTS soyo1(key INT,value STRING)")
spark.sql("LOAD DATA LOCAL INPATH 'file:///home/soyo/桌面/spark编程测试数据/kv1.txt' INTO TABLE soyo1")
spark.sql("select * from soyo").show() //默认只取前20行
spark.sql("select * from soyo").take().foreach(println)
import spark.sql //导入之后不需要再加Spark sql("SELECT COUNT(*) FROM soyo").show() sql("select count(*) from soyo1").show()
sql("show tables").show()
sql("select * from people").show()
val result2=sql("select * from people")
val fin_result=result2.map {
case Row(key: String, value: Int) => s"name=$key;value=$value"
}
fin_result.show() val recordsDF = spark.createDataFrame(( to ).map(i => Record(i, s"soyo_$i")))
recordsDF.createOrReplaceTempView("records") // Queries can then join DataFrame data with data stored in Hive.
sql("SELECT * FROM records ").show()
val res= sql("SELECT * FROM records ").map(
x=>"key:"+x()+",value:"+x()
).show()
spark.stop()
} }

结果:+---+-------+
|key|  value|
+---+-------+
|238|val_238|
| 86| val_86|
|311|val_311|
| 27| val_27|
|165|val_165|
|409|val_409|
|255|val_255|
|278|val_278|
| 98| val_98|
|484|val_484|
|265|val_265|
|193|val_193|
|401|val_401|
|150|val_150|
|273|val_273|
|224|val_224|
|369|val_369|
| 66| val_66|
|128|val_128|
|213|val_213|
+---+-------+
only showing top 20 rows

[238,val_238]
[86,val_86]
[311,val_311]
[27,val_27]
[165,val_165]
[409,val_409]
[255,val_255]
[278,val_278]
[98,val_98]
[484,val_484]
+--------+
|count(1)|
+--------+
|    6000|
+--------+

+--------+
|count(1)|
+--------+
|    8500|
+--------+

+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
| default|     soyo|      false|
| default|    soyo1|      false|
|        |   people|       true|
+--------+---------+-----------+

+-----+---+
| name|age|
+-----+---+
|soyo8| 35|
|   小周| 30|
|   小华| 19|
| soyo| 88|
+-----+---+

+-------------------+
|              value|
+-------------------+
|name=soyo8;value=35|
|   name=小周;value=30|
|   name=小华;value=19|
| name=soyo;value=88|
+-------------------+

+---+-------+
|key|  value|
+---+-------+
|  1| soyo_1|
|  2| soyo_2|
|  3| soyo_3|
|  4| soyo_4|
|  5| soyo_5|
|  6| soyo_6|
|  7| soyo_7|
|  8| soyo_8|
|  9| soyo_9|
| 10|soyo_10|
| 11|soyo_11|
| 12|soyo_12|
| 13|soyo_13|
| 14|soyo_14|
| 15|soyo_15|
| 16|soyo_16|
| 17|soyo_17|
| 18|soyo_18|
| 19|soyo_19|
| 20|soyo_20|
+---+-------+
only showing top 20 rows

+--------------------+
|               value|
+--------------------+
|  key:1,value:soyo_1|
|  key:2,value:soyo_2|
|  key:3,value:soyo_3|
|  key:4,value:soyo_4|
|  key:5,value:soyo_5|
|  key:6,value:soyo_6|
|  key:7,value:soyo_7|
|  key:8,value:soyo_8|
|  key:9,value:soyo_9|
|key:10,value:soyo_10|
|key:11,value:soyo_11|
|key:12,value:soyo_12|
|key:13,value:soyo_13|
|key:14,value:soyo_14|
|key:15,value:soyo_15|
|key:16,value:soyo_16|
|key:17,value:soyo_17|
|key:18,value:soyo_18|
|key:19,value:soyo_19|
|key:20,value:soyo_20|
+--------------------+
only showing top 20 rows

Spark SQL 操作Hive 数据的更多相关文章

  1. spark2.3.0 配置spark sql 操作hive

    spark可以通过读取hive的元数据来兼容hive,读取hive的表数据,然后在spark引擎中进行sql统计分析,从而,通过spark sql与hive结合实现数据分析将成为一种最佳实践.配置步骤 ...

  2. Spark SQL读取hive数据时报找不到mysql驱动

    Exception: Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "BoneC ...

  3. spark sql 访问hive数据时找不mysql的解决方法

    我尝试着在classpath中加n入mysql的驱动仍不行 解决方法:在启动的时候加入参数--driver-class中加入mysql 驱动 [hadoop@master spark-1.0.1-bi ...

  4. Spark SQL with Hive

    前一篇文章是Spark SQL的入门篇Spark SQL初探,介绍了一些基础知识和API,可是离我们的日常使用还似乎差了一步之遥. 终结Shark的利用有2个: 1.和Spark程序的集成有诸多限制 ...

  5. Hive on Spark和Spark sql on Hive,你能分的清楚么

    摘要:结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序. 本文分享自华为云社区<Hive on Spark和Spark sql o ...

  6. spark sql 操作

    DSL风格语法 1.查看DataFrame中的内容 scala> df1.show +---+--------+---+ | id| name|age| +---+--------+---+ | ...

  7. spark sql数据源--hive

    使用的是idea编辑器 spark sql从hive中读取数据的步骤:1.引入hive的jar包 2.将hive-site.xml放到resource下 3.spark sql声明对hive的支持 案 ...

  8. 通过 Spark R 操作 Hive

    作为数据工程师,我日常用的主力语言是R,HiveQL,Java与Scala.R是非常适合做数据清洗的脚本语言,并且有非常好用的服务端IDE——RStudio Server:而用户日志主要储存在hive ...

  9. Spark SQL与Hive on Spark的比较

    简要介绍了SparkSQL与Hive on Spark的区别与联系 一.关于Spark 简介 在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题 ...

随机推荐

  1. Luogu P3797 妖梦斩木棒

    解题思路 用线段树做这个就不用说了吧,但是要维护的东西确实很神奇.在每一个节点上都维护一个$lbkt$,表示这个区间上最靠左的右括号的位置:一个$rbkt$,表示这个区间上最靠右的左括号的位置.还有一 ...

  2. pageContext对象的使用及常用方法

    pageContext对象的使用及常用方法 制作人:全心全意 获取页面上下文的pageContext对象是一个比较特殊的对象,通过它可以获取JSP页面的request.response.session ...

  3. Python数据分析与展示(1)-数据分析之表示(2)-NumPy数据存取与函数

    NumPy数据存取与函数 数据的CSV文件存取 CSV文件 CSV(Comma-Separated Value,逗号分隔值) CSV是一种常见的文件格式,用来存储批量数据. 将数据写入CSV文件 np ...

  4. SSM+Shiro

    1) 表名:用户表(Sys_Users) Salt:盐(佐料).为避免被黑客等进行攻击(暴力密码破解),所以一般在注册用户信息时,系统会随机生成一个随机码.在验证时会将密码和随机码进行运算,以验证密码 ...

  5. 猎豹CEO傅盛:与周鸿祎、雷军、马化腾、马云的的相爱相杀

    百度百科:傅盛,男,1978年3月6日出生在江西景德镇,毕业于山东工商学院信息管理与信息系统专业. 2003年加入3721公司.2005年加入奇虎360,带领团队打造了安全类软件360安全卫士.200 ...

  6. HDU 1114 完全背包问题的转化

    题目大意: 根据存钱罐中钱的重量,和每一种钱对应的重量和价值,判断钱能否塞满这个重量,如果能,输出得到的最小价值 这个问题就是要把它和背包问题连接起来,这里钱取得数目是无穷的,所以这里只需要用到完全背 ...

  7. [Usaco2015 dec]Max Flow

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 204  Solved: 129[Submit][Status][Discuss] Descriptio ...

  8. NYOJ5 Binary String Matching

    Binary String Matching 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 Given two strings A and B, whose alp ...

  9. 强连通图 HDU - 1269

    为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A房间和B房间,只说明可以 ...

  10. LeetCode240:Search a 2D Matrix II

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...