Spark支持的一些常见的格式:
文本文件:无任何的格式json文件:半结构化parquet:一种流行的列式存储格式sequencefile:一种(k-v)的Hadoop文件格式.
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
OpsWihtJson_and_parquet { def main(args: Array[String]): Unit = { val sparkconf = new SparkConf().setAppName("test_Spark_sql").setMaster("local[2]") val ss = SparkSession.builder() .config(sparkconf) .getOrCreate() val sc = ss.sparkContext import ss.implicits._ val fileRDD = sc.textFile("/opt/tarballs/spark_kafka/beifengspark/src/main/scala/2015082818") //读文本文件,生成普通rdd,通过.toDF转化为data ,然后可以就使用sql了 ss.read.json("/home/zkpk/Desktop/test.json") .createOrReplaceTempView("people") val rs = ss.sql("select * from people") rs.printSchema() rs.show() ss.read.parquet("/home/bymain/Desktop/mllibDATA/scalaLogisticRegressionWithSGDModel/data/part-r-00000-9295ec7d-956a-46e7-91f8-a0b6f8a8ac93.snappy.parquet") .createOrReplaceTempView("users") val rs2 = ss.sql("select * from users") rs2.printSchema() rs.show() sc.stop() ss.stop() }}“`
SparkSession实质上是SQLContext和HiveContext的组合(未来可能还会加上StreamingContext),所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了sparkContext,所以计算实际上是由sparkContext完成的。
如果需要读hdfs数据的话,通常走Hive的比较多。一般写sql的时候,能用sparksession解决的,都不会去弄rdd的各种transform和action*
继续阅读与本文标签相同的文章
下一篇 :
Linux下挂载镜像,并配置本地yum源
-
MySQL查询重写插件
2026-05-25栏目: 教程
-
Inception在编译的时候的一个大坑!!!
2026-05-25栏目: 教程
-
SQL自动化审核工具测试
2026-05-25栏目: 教程
-
如何用C++做游戏(2)
2026-05-25栏目: 教程
-
今天的几件事情记录
2026-05-25栏目: 教程
