首页 > 其他分享 >学习笔记7

学习笔记7

时间:2024-01-18 18:23:03浏览次数:24  
标签:SparkSession DataFrame 学习 RDD json 笔记 sql spark

DataFrame的创建
Spark2.0版本开始,Spark使用全新的SparkSession接口替代Spark1.6中的SQLContext及HiveContext接口来实现其对数据加载、转换、处理等功能。SparkSession实现了SQLContext及HiveContext所有功能;

SparkSession支持从不同的数据源加载数据,并把数据转换成DataFrame,支持把DataFrame转换成SQLContext自身中的表,然后使用SQL语句来操作数据。SparkSession亦提供了HiveQL以及其他依赖于Hive的功能的支持;可以通过如下语句创建一个SparkSession对象:

scala> import org.apache.spark.sql.SparkSession

scala> val spark=SparkSession.builder().getOrCreate()

在创建DataFrame前,为支持RDD转换为DataFrame及后续的SQL操作,需通过import语句(即import spark.implicits._)导入相应包,启用隐式转换。

在创建DataFrame时,可使用spark.read操作从不同类型的文件中加载数据创建DataFrame,如:spark.read.json("people.json"):读取people.json文件创建DataFrame;在读取本地文件或HDFS文件时,要注意给出正确的文件路径;spark.read.csv("people.csv"):读取people.csv文件创建DataFrame;

读取hdfs上的json文件,并打印,json文件为:

{"name":"Michael"}

{"name":"Andy", "age":30}

{"name":"Justin", "age":19}

读取代码:

import org.apache.spark.sql.SparkSession

val spark=SparkSession.builder().getOrCreate()

import spark.implicits._

val df =spark.read.json("hdfs://172.22.241.183:8020/user/spark/json_sparksql.json")

df.show()

RDD转换DataFrame
Spark官网提供了两种方法来实现从RDD转换得到DataFrame:① 利用反射来推断包含特定类型对象的RDD的schema,适用对已知数据结构的RDD转换;② 使用编程接口,构造一个schema并将其应用在已知的RDD上;

Spark-sql即席查询
SparkSQL 的元数据的状态有两种:①  in_memory,用完了元数据也就丢了;② 通过hive保存,hive的元数据存在哪儿,它的元数据也就存在哪,SparkSQL数据仓库建立在Hive之上实现的,使用SparkSQL去构建数据仓库的时候,必须依赖于Hive。

Spark-sql命令行提供了即席查询能力,可以使用类sql方式操作数据源,效率高于hive

spark-sql导入数据到数仓

标签:SparkSession,DataFrame,学习,RDD,json,笔记,sql,spark
From: https://www.cnblogs.com/liucaizhi/p/17973146

相关文章

  • 算法学习Day30 n皇后
    Day30n皇后ByHQWQF2024/01/16笔记51.N皇后按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题研究的是如何将n 个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数n,返回所有不同的 n皇后问题的解决方......
  • Merge sort【1月18日学习笔记】
    点击查看代码//Mergesort#include<iostream>usingnamespacestd;voidmerge(intL[],intR[],intA[],intnL,intnR){//将两个已排序数组合并填入 inti=0,j=0,k=0;//i,j为未拾取元素索引,k为归并数组索引 while(i<nL&&j<nR){ if(L[i]<R[j]){......
  • Golang静态类型、编译型的语言学习
    golang属于一种静态类型、编译型的语言,它的设计目标是提供一种简单、高效、可靠的编程语言,适用于构建大型软件系统。Go语言的设计哲学是简洁、直接、易于理解和使用,Go语言支持并发编程,引入了goroutine和channel的概念,使得并发编程更加简单和高效,无论是用于Web开发、服务器编程、......
  • Flask的简单学习
    简介Flask是一个非常小的PythonWeb框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。flask的安装pipinstallflask创建一个flask项目目录结构如下app.py主文件,所......
  • 2024.1.18-每日进度笔记
    今天,我主要尝试了通过摄像头拍照并保存在本地指定文件。 参考:百度文心一言的回复。 <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>获取摄像头画面并拍照</title......
  • Markdown的学习
    markdown的基本语法标题三级标题四级标题几级标题前面就用几个#然后空格输入标题名称。最多只支持到6级标题字体倾斜你好给要倾斜的文字左右两边各加一个*就可以。加粗你好给要加粗的文字左右两边各加两个*就完成了。倾斜并且加粗你好给要倾斜并且加粗的文字两边各......
  • 「笔记」哈希
    目录写在前面哈希是什么?写在最后写在前面大部分内容来自高中时期讲课PPT,在这里整理成了适合自学的形式。哈希是什么?一种用于统计复杂信息的的不完美算法。构造一个满射[1]的哈希函数,将复杂信息映射到便于统计的信息上。丢失了部分信息。写在最后进度有点太赶了!题单太难......
  • django的简单学习
    前言以下项目实现基于一个投票系统安装django命令行安装pipinstalldjangopycharm安装pycharm的setting里找到这个,点击+号,搜索django点击InstallPackage新建一个django项目命令行创建项目(windows)在pip安装完之后,在python的Scripts目录里有django-admin.exe:::tip......
  • 关于2023分子植物育种大会随笔记录与思考
    目录智能育种转基因基因编辑育种实践2023年底分子植物育种大会在成都举行,会后要点胡乱记录之。有些来自嘉宾观点,有些是个人思考,杂糅一起,仅供参考。智能育种分子设计育种:形态、生理、基因、等位基因、单倍型、基因组区段、通路、网络、表观组。统言之,生物相关分子皆可设计。科迪华玉......
  • linux下iptables学习
    iptables的结构iptables由上而下,由tables、chains、rules组成四表iptables有filter、nat、mangle、raw四种内置表Filter表filter是iptables的默认表,有一下三种内建链:INPUT链-处理来自外部的数据OUTPUT链-处理向外发送的数据FORWARD链-将数据转发到本机的其他网......