SparkSQL(Spark

  • 时间:
  • 浏览:1



parquet文件目录型态如下图

//读取parquet格式数据

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

//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)

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

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

2 利用进程动态指定Schema

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

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

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