Other

7.Spark SQL

4. PySpark-DataFrame各种常用操作 基于df的操作: 打印数据 df.show()默认打印前20条数据 打印概要 df.printSchema() 查询总行数 df.count() df.head(3) #list类型,list中每个元素是Row类 输出全部行 df.collect() #list类型,list中每个元素是Row类 查询概况 df.describe().show() 取列 df[‘name’], df.name, df[1] 选择 df.select() 每个人的年龄+1 筛选 df.filter() 20岁以上的人员信息 筛选年龄为空的人员信息 分组df.groupBy() 统计每个年龄的人数 排序df.sortBy() 按年龄进行排序 基于spark.sql的操作: 创建临时表虚拟表 df.registerTempTable('people') spark.sql执行SQL语句 spark.sql('select name from people').show()

python 异步请求 mysql 获取数据的脚本

python 异步请求 mysql 获取数据的脚本 import asyncio from pprint import pprint import aiomysql.sa as aio_sa async def main(): # 通过异步上下文管理器的方式创建, 会自动帮我们关闭引擎 async with aio_sa.create_engine(host=xx.xxx.xx.xxx, port=3306, user=root, password=root, db=_hanser, connect_timeout=10) as engine: async with engine.acquire() as conn: result = await conn.execute(SELECT * FROM girl) # 此时的 data 是一个列表, 列表里面是 <class 'aiomysql.sa.result.RowProxy'> 对象 data = await result.fetchall() # 将里面的元素转成字典 pprint(list(map(dict, data))) [{'age': 16, 'id': 1, 'name': '古明地觉', 'place': '地灵殿'}, {'age': 16, 'id': 2, 'name': '雾雨魔理沙', 'place': '魔法森林'}, {'age': 400, 'id': 3, 'name': '芙兰朵露', 'place': '红魔馆'}] loop = asyncio.

Spark SQL

1.请分析SparkSQL出现的原因,并简述SparkSQL的起源与发展。 因为关系数据库已经很流行,而且关系数据库在大数据时代已经不能满足要求。首先,用户需要从不同数据源执行各种操作,包括结构化、半结构化和非结构化数据。其次,用户需要执行高级分析,比如机器学习和图像处理。在实际大数据应用中,经常需要融合关系查询和复杂分析算法(比如机器学习或图像处理),但是,缺少这样的系统。 Spark SQL填补了这个鸿沟:首先,可以提供DataFrame API,可以对内部和外部各种数据源执行各种关系型操作。其次,可以支持大数据中的大量数据源和数据分析算法Spark SQL可以融合:传统关系数据库的结构化数据管理能力和机器学习算法的数据处理能力。  2.简述RDD和DataFrame的联系与区别? 区别:RDD是分布式的java对象的集合,但是对象内部结构对于RDD而言却是不可知的。DataFrame是一种以RDD为基础的分布式数据集,提供了详细的结构信息,相当于关系数据库中的一张表。 联系:1.都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利。2、都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action才会运算。3.都会根据spark的内存情况自动缓存运算,这样即使数据量很大,也不用担心会内存溢出4、三者都有partition的概念。5.三者有许多共同的函数,如filter,排序等。  3.DataFrame的创建 spark.read.text(url) spark.read.json(url)  spark.read.format(text).load(people.txt)  spark.read.format(json).load(people.json)  4. PySpark-DataFrame各种常用操作基于df的操作:打印数据 df.show()默认打印前20条数据 打印概要 df.printSchema() 查询总行数 df.count()df.head(3) #list类型,list中每个元素是Row类输出全部行 df.collect() #list类型,list中每个元素是Row类查询概况 df.describe().show()取列 df[‘name’], df.name, df[1] 基于sparksql的操作: 创建临时表虚拟表 df.registerTempTable('people')spark.sql执行SQL语句 spark.sql('select name from people').show()  5. Pyspark中DataFrame与pandas中DataFrame 分别从文件创建DataFrame  比较两者的异同 pandas中DataFrame转换为Pyspark中DataFrame Pyspark中DataFrame转换为pandas中DataFrame  6.从RDD转换得到DataFrame 6.1 利用反射机制推断RDD模式 创建RDD sc.textFile(url).map(),读文件,分割数据项 每个RDD元素转换成 Row 由Row-RDD转换到DataFrame

centos8升级cockpit以及安装虚拟机

cockpit的更新和安装【centos8】 Cockpit 是一个自由开源的服务器管理软件,使得我们可以通过它好看的 Web 前端界面轻松地管理我们的 GNU/Linux 服务器,非常轻量级,Web 界面也非常简单易用。 Cockpit 使得 Linux 系统管理员、系统维护员和开发者能轻松地管理他们的服务器并执行一些简单的任务,例如管理存储、检测日志、启动或停止服务以及一些其它任务。它的报告界面添加了一些很好的功能使得可以轻松地在终端和 Web 界面之间切换。另外,它不仅使得管理一台服务器变得简单,更重要的是只需要一个单击就可以在一个地方同时管理多个通过网络连接的服务器。 本身centos8系统是直接集成了这一软件,所以直接在终端启动就可以打开 [root@localhost ~]# systemctl start cockpit [root@localhost ~]# systemctl status cockpit ● cockpit.service - Cockpit Web Service Loaded: loaded (/usr/lib/systemd/system/cockpit.service; static; vendor preset: disabled) Active: active (running) since Tue 2022-05-10 16:56:21 CST; 9s ago Docs: man:cockpit-ws(8) Process: 5765 ExecStartPre=/usr/sbin/remotectl certificate --ensure --user=root --group=cockpit-ws --selinux-type=etc_t (code=exited, status=0/SUCCESS) Main PID: 5780 (cockpit-tls) Tasks: 1 (limit: 204579) Memory: 3.

CentOS 操作系统安装

点击创建新的虚拟机 点击下一步 选择稍后安装操作系统 选择Linux,版本为CentOS 64位 自行为虚拟机命名并选择存储位置 根据自己电脑配置自行选择 根据自己电脑配置自行选择 选择NAT模式 点击自定义硬件 点击处理器选项,在虚拟化引擎中勾选虚拟化Inter VT 或 AMD-V/RVI(V) 移除 声卡、打印机 无用设备 做KVM实验,USB控制器不能移除 点击开启此虚拟机 鼠标点进去,通过上下键控制光标,选中第一项install centos 7 ,回车 选择语言,然后继续 选择最小化安装,时区、语言、安装源、网络自行配置 设置root密码 重启 尝试以root用户登录,输入密码  

shell 脚本概括 实例

一、shell概述1、什么是shell shell命令解释器 界面输入命令,将命令翻译0101,让内核看得懂,内核将0101翻译成abcd命令结果。 windows也有shell 桌面也就是 以上同理,专业叫图形界面shell分类: Bash 可移至行好 编辑性好 快捷键好 二、shell脚本的执行方式1、echo命令选项: -e 支持反斜线控制的字符转换 -n 不换行 echo -n '11111' -e支持的控制字符: \a 输出警告音 \n 换行符 \t 制表符,也就是tab键 [root@localhost ~]# echo -e \x61 #16进制 输出a2、shell脚本的执行方法:vim hello.s#!/bin/bash#the first program# author:lihong (E-mail: [email protected]) echo -e lihong zhen shuai shell脚本 注释# 开头的就是注释 #!/bin/bash变量运行shell时候,会同时勋在三种变量局部变量:局部变量在脚本或命令定义,仅在当前shell实例中有效   echo $HOME 家目录 echo $PWD 当前目录 echo $shell 默认解释器 echo $USER 当前用户 定义变量:[root@localhost ~]# a=1 =前后没有空格[root@localhost ~]# echo $a1撤销变量: echo $a 字母数字下换线 不能数字开头 等号两边不能有空格在bash中 变量默认都是字符串类型 无法直接进行数值运算变量值有空格 需要使用双引号或者单引号括起来

国产化设备鲲鹏CentOS7上源码安装Python3.7

具体编译过成与正常的Python源代码在x86平台上的过程无异,此篇随笔仅当用作复制黏贴的备忘录。不得不说在一个老旧系统上安装一个老旧的Python版本,从头编译一个Python还是一个较为稳健的选择。 获取源代码 Python官网处下载所需源码版本[https://www.python.org/downloads/source/] curl -O https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tgz 准备工作(安装依赖) 其实依赖不装全也是能够顺利编译完成的,只不过在make阶段会放弃部分组件的构建如压缩算法和ssl,tk一类的组件,但是有条件还是建议装全咯。 yum install -y gcc make yum install -y openssl openssl-devel openssl-static bzip2 bzip2-devel ncurses ncurses-devel readline readline-devel xz lzma xz-devel sqlite sqlite-devel gdbm gdbm-devel expat-devel tk tk-devel tcl tcl-devel libffi libffi-devel 生成Makefile 这边主要注意下几个参数,--enable-shared生成动态依赖库(非必要),--prefix 指定Python安装目录(务必指定,尤其在有多个python环境下的时候,你也不想覆盖了系统自带的Python导致系统组件如yum一类的挂掉),--enable-optimizations(优化参数非必要)。还有就是,如果你的openssl安装到了其他目录或是有多openssl的环境请使用--with-openssl=DIR指定你使用的openssl版本,这在低版本操作系统下构建高版本python时非常重要,已centos7为例子它自带的openssl-1.0.2不足以用于构建Python3.10(python3.10需要openssl 1.1.1以上),但是贸然的修稿系统的openssl版本会导致其余依赖程序的崩溃,所以你只能在特定目录下安装openssl并使用。 # 解压源码包 tar zxvf Python-3.7.13.tgz && cd Python-3.7.13 # 生成Makefile ./configure --enable-shared --prefix=/usr/local/python3.7 --enable-optimizations 构建&&安装 有一说一在鲲鹏这种主频较低的cpu上编译着实挺慢的 make && make install 添加环境变量 echo 'export PATH=$PATH:/usr/local/python3.

关闭Command启动的进程

在用exec包调用的其他进程后如何关闭结束,可以使用context包的机制进行管理,context包的使用详见:https://godoc.org/context exec.CommandContext方发实现了context,通过context可以对exec启动的进程结束。 隐藏程序自身黑窗口的方法:go build -ldflags=-H windows 隐藏子进程黑窗口的方法: cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} package main import ( context fmt os os/exec syscall time ) func main() { ctx, cancel := context.WithCancel(context.Background()) cmd := exec.CommandContext(ctx, ./b) cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} cmd.Stdout = os.Stdout cmd.Start() time.Sleep(10 * time.Second) fmt.Println(退出程序中..., cmd.Process.Pid) cancel() cmd.Wait() } 如果调用其他的exe文件,直接输入cmd := exec.CommandContext(ctx, xxx.exe,args...)即可,后面args...为slice类型的参数。 cmd.Process.Pid 为启动的二进制文件的进程id

power shell通过epplus操作excel

[void][Reflection.assembly]::LoadFrom(C:\ww\EPPlus.dll) [void][Reflection.assembly]::LoadFrom(C:\ww\Microsoft.IO.RecyclableMemoryStream.dll) $ex = New-Object OfficeOpenXml.ExcelPackage(C:\ww\x.xlsx) #$ex.SaveAs(C:\ww\x1.xlsx) [System.Windows.Forms.MessageBox]::Show(($ex.Workbook.Worksheets[3].Cells[4,4]).ToString()) [System.Windows.Forms.MessageBox]::Show($ex.Workbook.Worksheets[3].Name)  

Linux题库1

一.选择题 1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(B)? A.NID B.PID C.UID D.CID 2.下面哪个目录存放用户密码信息(B) A./boot B./etc C./var D./dev 3.(D)不是流行的Linux操作系统。 A.Red Hat Linux B.Mac OS C.Ubuntu Linux D.Red Flag Linux 4.关闭linux系统(不重新启动)可使用命令 (B) 。 A.Ctrl+Alt+Del B.halt C.shutdown -r now D.reboot 5.用自动补全功能时,输入命令名或文件名的前1个或几个字母后按什么键?(B) A.【Ctrl】键 B.【Tab】键 C.【Alt】键 D.【Esc】键 6.在vi中退出不保存的命令是?(AD) A.:q B.:w C.:wq D.:q! 7.下面哪个Linux命令可以一次显示一页内容?(C) A.pause B.cat C.more D.grep 8.pwd命令功能是什么? (C ) A.设置用户的口令 B.显示用户的口令 C.显示当前目录的绝对路径 D.查看当前目录的文件 9.文件权限读、写、执行的三种标志符号依次是(A). A.rwx B.xrw C.rdx D.srw 10.某文件的组外成员的权限为只读100rwx4;所有者有全部权限111/7;组内的权限为读与写110/6;则该文件的权限为(D). A.467 B.674 C.476 D.764 11.改变文件所有者的命令为(C). A.chmod B.touch C.chown D.cat 12.为了将当前目录下的压缩归档文件myftp.tar.gz解压缩,我们可以使用(A). A.tar -xvzf myftp.