首页 > 其他分享 >大三寒假学习进度笔记9

大三寒假学习进度笔记9

时间:2024-01-18 21:55:53浏览次数:27  
标签:load Footer df 笔记 寒假 spark Metadata 大三 schema

今日学习时间一小时,学习内容:通过不同格式构建DataFrame对象,包括基于Pandas的DF转换,读取text,csv,json和jparquet创建。

jparquet具有以下特点:

  • 列式存储
  • 自带Schema
  • 具备Predicate Filter特性

一个Parquet文件的内容由Header、Data Block和Footer三部分组成。

在文件的首尾各有一个内容为PAR1的Magic Number,用于标识这个文件为Parquet文件。Header部分就是开头的Magic Number。

Data Block是具体存放数据的区域,由多个Row Group组成,每个Row Group包含了一批数据。

Footer部分由File Metadata、Footer Length和Magic Number三部分组成。Footer Length是一个4字节的数据,用于标识Footer部分的大小,帮助找到Footer的起始指针位置。Magic Number同样是PAR1。File Metada包含了非常重要的信息,包括Schema和每个Row Group的Metadata。每个Row Group的Metadata又由各个Column的Metadata组成,每个Column Metadata包含了其Encoding、Offset、Statistic信息等等。

接下来是我今日学习过程中使用到的一些代码

# coding:utf8

from pyspark.sql import SparkSession
from pyspark.sql.types import StructType, StringType, IntegerType
import pandas as pd

if __name__ == '__main__':
    spark = SparkSession.builder. \
        appName("test"). \
        master("local[*]"). \
        getOrCreate()

    sc = spark.sparkContext

    #text数据源,读取数据的特点是:将一整行只作为一个列读取
    schema = StructType().add("data", StringType(), nullable=True)
    df = spark.read.format("text").\
        schema(schema=schema).\
        load("../data/input/people.txt")



    #json类型自带有Schema信息
    df = spark.read.format("json").load("../data/input/people.json")


    #读取csv格式
    df = spark.read.format("csv").\
        option("sep",";").\
        option("header",True).\
        option("encoding","utf-8").\
        schema("name STRING,age INT, job STRING").\
        load("../data/input/people.csv")



    #读取parquet数据源 自带schema,直接load,其他不需要
    df = spark.read.format("parquet").load("../data/input/users.parquet")

    df.printSchema()
    df.show()

  

标签:load,Footer,df,笔记,寒假,spark,Metadata,大三,schema
From: https://www.cnblogs.com/wrf1/p/17973506

相关文章

  • 2024/1/18学习进度笔记
    今天研究了外包杯的题目。我们做的主要是一个虚拟数字人的项目,这里记录下在windows上配置pytorch3d以及freqencoder,gridencoder,raymarchingshencoder这几个库的过程首先这几个库是用过setup.py进行安装的,也就是pythonsetup.pyinstall安装前电脑里必须要装好了VisualStu......
  • 寒假生活指导10
    #(1)请求对象的定制#(2)获取网页的源码#(3)下载#需求下载的前十页的图片#https://sc.chinaz.com/tupian/qinglvtupian.html1#https://sc.chinaz.com/tupian/qinglvtupian_page.htmlimporturllib.requestfromlxmlimportetreedefcreate_request(page):......
  • 《拓扑学》复习笔记
    是1.15写的,但仅存了草稿,1.18终于想起来发布,没想到发布时间变成今天了(?麻,一点不懂,记录一下习题课感觉对于数学课,敲公式对学的效果比较有限,还是回去手写一遍其实写了,但截图发博客很麻烦。考前复习到凌晨三点,把讲义全看完了,但看过≠我会。此外还和好同学们讨论了往年......
  • stm32笔记[12]-LoRa通信
    摘要在蓝桥杯物联网的CT127C开发板上测试LoRa通信;Node_A按下按钮触发按键中断,经过定时器消抖后触发LoRa发送函数并切换LED的状态,Node_B接收到数据后在屏幕显示累计次数.开发环境Keil5.35.00HAL库版本:STM32CubeFW_L0V1.12.0STM32CubeMX:6.2.1原理简介LoRa简介[htt......
  • 学习笔记7
    DataFrame的创建Spark2.0版本开始,Spark使用全新的SparkSession接口替代Spark1.6中的SQLContext及HiveContext接口来实现其对数据加载、转换、处理等功能。SparkSession实现了SQLContext及HiveContext所有功能;SparkSession支持从不同的数据源加载数据,并把数据转换成DataFrame,支持......
  • 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]){......
  • 2024.1.18-每日进度笔记
    今天,我主要尝试了通过摄像头拍照并保存在本地指定文件。 参考:百度文心一言的回复。 <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>获取摄像头画面并拍照</title......
  • 「笔记」哈希
    目录写在前面哈希是什么?写在最后写在前面大部分内容来自高中时期讲课PPT,在这里整理成了适合自学的形式。哈希是什么?一种用于统计复杂信息的的不完美算法。构造一个满射[1]的哈希函数,将复杂信息映射到便于统计的信息上。丢失了部分信息。写在最后进度有点太赶了!题单太难......
  • 关于2023分子植物育种大会随笔记录与思考
    目录智能育种转基因基因编辑育种实践2023年底分子植物育种大会在成都举行,会后要点胡乱记录之。有些来自嘉宾观点,有些是个人思考,杂糅一起,仅供参考。智能育种分子设计育种:形态、生理、基因、等位基因、单倍型、基因组区段、通路、网络、表观组。统言之,生物相关分子皆可设计。科迪华玉......
  • Go语言学习笔记 - 不定时更新
    Go语言常用命令环境准备#修改go配置exportGOPROXY="https://goproxy.cn"GoMod(注:比较常用的是init,tidy,edit)gomodinitnamecreatemodules(创建包名注:包名在import引入自定义包时替代GOPATH)gomoddownloaddownloadmodulestolocalcache(下载依赖......