如何使用在hive表中分区的数据从RC文件创建RDD

时间:2016-11-01 21:14:53

标签: scala apache-spark-sql spark-dataframe scala-collections

CREATE TABLE employee_details(                                                        
emp_first_name varchar(50),
emp_last_name varchar(50),
emp_dept varchar(50)
)
PARTITIONED BY (
emp_doj varchar(50),
emp_dept_id int  )
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'                                 
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileInputFormat'                                       
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileOutputFormat';

存储的配置单元表的位置是/ data / warehouse / employee_details

我有一个hive表员工加载数据,并由emp_doj,emp_dept_id和FileFormat分区为RC文件格式。

我想使用spark-sql处理表中的数据,而不使用hive-context(只需使用sqlContext)。

你能帮我解决一下如何将hive表的分区数据加载到RDD并转换为DataFrame

1 个答案:

答案 0 :(得分:0)

如果您使用的是Spark 2.0,则可以这样做。

val spark = SparkSession
  .builder()
  .appName("Spark Hive Example")
  .config("spark.sql.warehouse.dir", warehouseLocation)
  .enableHiveSupport()
  .getOrCreate()

import spark.implicits._
import spark.sql

// Queries are expressed in HiveQL
sql("SELECT * FROM src").show()