SparkSQL(Spark

  • 时间:
  • 浏览:2
  • 来源:uu快3诀窍_uu快3app安卓_导航网

换成公众微信号,可不可不可不可不能不能了解更多最新技术资讯

前面你们 创建DataFrame时,读取的是HDFS中的txt类型数据,在SparkSQL中,它支持多种数据源,主要包括JSON、Parquet等。

1 采用反映机制进行Schema类型推导(RDD到DataFrame的转换)

SparkSQL支持RDD到DataFrame的自动转换,实现土措施是通过Case类定义表的Schema,Spark会通过反射机制读取case class的参数名并将其配置成表的列名。



parquet文件目录型态如下图

//读取parquet格式数据

val parquetFile = sqlContext.read.parquet(“/data/namesAndAges.parquet”)

2 利用守护线程池池动态指定Schema

在其他应用场景下,你们 将会不须能提前选者 对应列的个数,因而case class无法进行定义,此时可不可不可不可不能不能通过传入1个字符串来设置Schema信息。具体过程如下:

//parquetFile注册成表

parquetFile.registerTempTable(“parquetPerson”)

val teenagers = sqlContext.sql(“SELECT name FROM parquetPerson WHERE age >= 13 AND age <= 19”)

teenagers.map(t => “Name: ” + t(0)).collect().foreach(println)