国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

一個簡單的sparkSQL案例

2019-11-08 19:42:59
字體:
來源:轉載
供稿:網友

使用編程接口來創建DataFrame. 注意的問題:需要記住一個這樣的結構~

package sparksqldemoimport org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}import org.apache.spark.sql.{Row, SQLContext}import org.apache.spark.{SparkConf, SparkContext}/** * Created by Youxiangyang on 2017/2/16. * DataFrame * 最核心的編程抽象.可以理解為是以列的形式存儲的,分布式的數據集合. * 和關系型數據庫很類似. * 可以通過多種數據源來構造.如結構化的數據文件,數據庫中的表.hive的表,RDD等 */object Demo01 { def main(args: Array[String]): Unit = { val conf=new SparkConf().setAppName("HiveDemo").setMaster("local") val sc=new SparkContext(conf) val sqlContext=new SQLContext(sc) //設置conf,配置AppName,運行的Master(這里設置為本地模式 //創建一個sc的SQLContext對象 //創建一個sqlcontext對象(也可以是SQLContext的子類對象,如 HiveContext) //加載數據源 val datas=sc.textFile("hdfs://hadoop01:9000/datas/people") //RDD轉換為DataFrame有兩種方式:(這里使用了第二種) //使用反射方式推斷元數據 //使用編程接口來創建DataFrame. val rowRDD=datas.map(line=>{ val stu=line.split("/t") Row(stu(0).toInt,stu(1),stu(2)) //創建出元素為ROW的RDD }) //流程簡介:從原始的RDD創建一個元素為row的RDD;接下來創建一個structType,來代表ROW,最后將動態定義的 //元數據應用到RDD(ROW)上 val structType=StructType(Array( //通過編程的方式動態的構造元數據 StructField("id",IntegerType,true), StructField("name",StringType,true), StructField("sex",StringType,true) )) //通過sqlContext的createDataFrame方法,創建DataFrame, // 將row類型的RDD和數據結構structType結合到一起 val stuDF=sqlContext.createDataFrame(rowRDD,structType) stuDF.show() //show方法可以把里面的數據顯示出來 stuDF.registerTempTable("stu") //注冊為臨時表,這樣就可以使用SQL語句了. sqlContext.sql("select name form stu where sex='m'").show() }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼木县| 吉安市| 赤水市| 梧州市| 五峰| 龙游县| 临桂县| 容城县| 德州市| 奎屯市| 曲沃县| 武安市| 大同市| 龙海市| 襄樊市| 沙田区| 芒康县| 拜泉县| 大埔县| 印江| 邻水| 福贡县| 桓台县| 茌平县| 龙川县| 北海市| 洛宁县| 上思县| 福鼎市| 阿鲁科尔沁旗| 嫩江县| 乐业县| 克山县| 南郑县| 上林县| 美姑县| 宜宾县| 威远县| 石嘴山市| 泗洪县| 抚松县|