這裏說的是最簡便的方法,經過Spark sql直接操做hive。前提是hive-site.xml等配置文件已經在Spark集羣配置好。sql
val logger = LoggerFactory.getLogger(SevsSpark4.getClass)apache
def main(args: Array[String]): Unit = {
val sparkconf = new SparkConf().setAppName("sevs_spark4")
.set("HADOOP_USER_NAME", getProp("hbase.hadoop.username"))
.set("HADOOP_GROUP_NAME", getProp("hbase.hadoop.groupname"))
// .setMaster("local")app
val spark = SparkSession
.builder()
.appName("sevs spark sql")
.config(sparkconf)
.enableHiveSupport()
.getOrCreate()maven
// For implicit conversions like converting RDDs to DataFrames
import spark.implicits._ide
//讀Hive示例 oop
val df = spark.sql("select field1,field2 from table1")
df.show(1)
val count = df.count
logger.error(s"數據量={} ################",count)ui
//寫hive示例 spa
val wf = spark.sql("insert into table1 values ('1','201812')")
logger.error("ending sql hive#################")
}xml
maven依賴以下:hadoop
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>