自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 资源 (5)
  • 收藏
  • 关注

原创 Optimize and Vacuum Delta Tables

Optimize and Vacuum Delta Tables。

2023-05-05 13:34:03 524 1

原创 Logger to record sqlcmd status

Logger to record sqlcmd status。

2023-05-01 21:51:46 212

原创 Install Python Library in Databricks

【代码】Install Python Library in Databricks。

2023-05-01 21:08:24 280

原创 常见数据类型与spark中数据类型映射

定义一个数据类型映射字典 def __init__(self): self.DataTypeMappings = { 'STRING_TYPES': ['char', 'comment', 'nchar', 'ntext', 'nvarchar', 'shortdescription', 'string', 'tokencode', 'varchar', StringType()],

2023-04-19 16:57:58 201

原创 pyspark离线数据处理常用方法

【代码】pyspark离线数据处理常用方法。

2023-04-14 17:56:20 63

原创 以多进程/线程方式执行命令

【代码】以多进程/线程方式执行命令。

2023-04-14 13:11:36 60

原创 DBFS CLI : 03-Load and Use Secrets

Load and Use Secrets列出当前的secretsdatabricks secrets list-scopes创建一个scopedatabricks secrets create-scope —scope + scope名称databricks secrets create-scope --scope demo-scope删除scopedatabricks secrets delete-scope --scope demo-scope创建或更新secretdatab

2022-04-23 19:40:23 339

原创 DBFS CLI : 02-文件操作相关常用命令

DBFS CLI查看DBFS上都有哪些文件databricks fs lsdatabricks fs lsdatabricks fs ls dbfs:/mnt查看一个文件的具体内容 databricks fs catdatabricks fs cat dbfs:/tmp/my-file.txtApache Spark is awesome!文件复制databricks fs cpdatabricks fs cp dbfs:/tmp/your_file.txt dbfs:/parent

2022-04-23 19:39:42 559

原创 DBFS CLI : 01-Setting up the CLI

Setting up the CLI安装pip install databricks-cli设置连接到databricks从portal上获取host的url ,一般类似于这样https://adb-79479539573402579589.1.databricks.azure.cn/创建一个tokenSettings > User Settings > Access Tokens > Generate New Token通过如下命令,然后把host和toke

2022-04-22 11:49:41 183

原创 14-Sprak设置自动分区

说明首先调整配置信息spark.conf.set("spark.sql.sources.partitionOverwriteMode","dynamic")在写入分区表的时候,一定要注意字段顺序,需要把分区字段放到最后,且如果有多个字段分区的话,顺序也要对应。def re_arrange_partition_columns(df,partition_columns): ''' df : 输入的df,spark.DataFrame类型 partition_columns :

2022-04-22 11:32:14 982

原创 13-Set Time Zone

常用语法SET TIME ZONE LOCALSET TIME ZONE 'timezone_value'SET TIME ZONE INTERVAL interval_literal参数解释LOCALSet the time zone to the one specified in the java user.timezone property, or to the environment variable TZ if user.timezone is undefined, or to

2022-04-22 11:30:56 123

原创 13-Set Time Zone

常用语法SET TIME ZONE LOCALSET TIME ZONE 'timezone_value'SET TIME ZONE INTERVAL interval_literal参数解释LOCALSet the time zone to the one specified in the java user.timezone property, or to the environment variable TZ if user.timezone is undefined, or to

2022-04-22 11:30:26 2136

原创 12-Delta Lake

Create/Write a Delta TableeventsDF = spark.read.parquet(eventsPath)Convert data to a Delta table using the schema provided by the DataFrame使用save到路径保存delta tabledeltaPath = f"{delta_path}/delta-events"eventsDF.write.format("delta").mode("overwrite

2022-04-22 11:29:36 176

原创 11-Aggregating Streams

Reading Datadisplay(dbutils.fs.ls('/mnt/training/ecommerce/events/events-2020-07-03.json'))schema = "device STRING, ecommerce STRUCT<purchase_revenue_in_usd: DOUBLE, total_item_quantity: BIGINT, unique_items: BIGINT>, event_name STRING, event_pre

2022-04-22 11:28:50 125

原创 10-Streaming Query

readStreamschema = "device STRING, ecommerce STRUCT<purchase_revenue_in_usd: DOUBLE, total_item_quantity: BIGINT, unique_items: BIGINT>, event_name STRING, event_previous_timestamp BIGINT, event_timestamp BIGINT, geo STRUCT<city: STRING, state: S

2022-04-22 11:27:12 186

原创 09-Partitioning

Get partitions and coresUse an rdd method to get the number of DataFrame partitionsdf = spark.read.parquet(eventsPath)df.rdd.getNumPartitions()Access SparkContext through SparkSession to get the number of cores or slotsSparkContext is also provided

2022-04-22 11:24:32 1555 1

原创 08-UDFs

User-Defined FunctionsDefine a functionCreate and apply UDFRegister UDF to use in SQLUse Decorator Syntax (Python Only)Use Vectorized UDF (Python Only)MethodsUDF Registration (spark.udf): registerBuilt-In Functions : udfPython UD

2022-04-22 11:22:35 2398

原创 07-Complex Types

Extract item detailsdf = spark.read.parquet(salesPath).select('email','items')display(df)这里的字段items是一个列表,里面装了一个或多个字典explore: 将一个列表展开,相当于把数据一行转多行了。split:将一个文件按分隔符拆开。from pyspark.sql.functions import *detailsDF = (df.withColumn("items", explode

2022-04-22 11:19:56 210

原创 06-Datetimes

Datetime FunctionsCurrent Date/TimestampCast to timestampFormat datetimesExtract from timestampConvert to dateManipulate datetimesMethodsColumn : castBuilt-In Functions : date_format, to_date, date_add, year, month, dayofweek, mi

2022-04-22 01:15:00 207

原创 05-Aggregation

Grouping dataUse the DataFrame groupBy method to create a grouped data objectThis grouped data object is called RelationalGroupedDataset in Scala and GroupedData in Pythondf.groupBy("geo.state", "geo.city")Grouped data methodsVarious aggregate metho

2022-04-22 01:00:00 129

原创 04-Functions

join两个DataFrame根据某个条件进行关联。类似的还有crossJoin返回一个笛卡尔积表ParametersotherDataFrameRight side of the joinonstr, list or Column, optionala string for the join column name, a list of column names, a join expression (Column), or a list of Columns. If on is a str

2022-04-22 00:30:00 130

原创 03-DataFrame & Column

Construct columnsA column is a logical construction that will be computed based on the data in a DataFrame using an expressionConstruct a new column based on the input columns existing in a DataFramefrom pyspark.sql.functions import colcol("device")d

2022-04-21 17:37:42 293

原创 02-SparkSQL

常用方法spark.sql执行sql语句sqlstr = """select store_code,store_name,locationfrom storewhere country = 'CN'order by id"""spark.sql(sqlstr)2. show & display查看数据showdf.show()display(推荐)display(df)3. 从现有表创建一个DataFrame。spark.table & spar

2022-04-21 17:36:33 695

原创 01-Read&Write

ReaderRead from CSV filesspark.read.csv也可以读取csv文件,而且更常用。Read from CSV with DataFrameReader’s csv method and the following options:Tab separator, use first line as header, infer schemafile_csv = "/mnt/training/ecommerce/users/users-500k.csv"df = (sp

2022-04-21 17:31:43 758

原创 09-Apache-DBUtils实现CRUD操作

Apache-DBUtils简介commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。API介绍:org.apache.commons.dbutils.QueryRunnerorg.apache.commons.dbutils.ResultSetHandler工具类:org.apache.commons.dbutils.DbUtils

2022-04-17 19:34:05 106

原创 08-数据库连接池

数据库连接池的必要性在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:在主程序(如servlet、beans)中建立数据库连接进行sql操作断开数据库连接这种模式开发,存在的问题:普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。**

2022-04-17 18:46:30 221

原创 07-数据库事务

数据库事务介绍事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务**回滚(rollback)**到最初状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作

2022-04-17 13:28:01 760

原创 06-高效地向数据库批量插入数据

实现层次1:使用PreparedStatment一行行插入public static void InsertTypeOne(int rows) { // 一行行插入 Connection conn = null; PreparedStatement ps = null; try { conn = JDBCUtils.GetConnection(); String sqlstr = "insert into user_info(name,ema

2022-04-16 23:02:02 2023

原创 05-操作Blob类型字段

MySQL BLOB类型MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。插入BLOB类型的数据必须使用PreparedStatement,因为BLOB类型的数据无法使用字符串拼接写的。MySQL的四种BLOB类型(除了在存储的最大信息量上不同外,他们是等同的)类型大小(单位:字节)TinyBlob最大255Blob最大65KMediumBlob最大16MLongBlob最大4G实际使用中根据需

2022-04-16 22:22:39 364

原创 04-使用PreparedStatement实现查询操作之通用方法

以user_info表为例先建立文件bean/UserInfo.java如下package bean;public class UserInfo { private int id; private String name; private String email; public UserInfo(){ super(); } public UserInfo(int id,String name,String email){

2022-04-16 22:21:07 339

原创 04-使用PreparedStatement实现查询操作之通用方法

以user_info表为例先建立文件bean/UserInfo.java如下package bean;public class UserInfo { private int id; private String name; private String email; public UserInfo(){ super(); } public UserInfo(int id,String name,String email){

2022-04-16 21:54:23 1336

原创 03-使用PreparedStatement实现CRUD操作之R

import utils.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;public class PreparedStatementRead { public static void main(String[] args) { Read(); } public static void Read() {

2022-04-16 18:45:24 306

原创 02-使用PreparedStatement实现CRUD操作之CUD

操作和访问数据库数据库连接被用于向数据库服务器发送命令和 SQL 语句,并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。PrepatedStatement:SQL 语句被预编译并存储在此对象中,可以使用此对象多次高效地执行该语句。CallableStatement:用于执行 SQL 存储过程使用Stateme

2022-04-16 17:38:51 127

原创 01-获取数据连接

要素1:Driver接口实现类Driver接口介绍java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。Oracle的驱动:oracle.jdbc.driver.OracleDrivermySql的驱动: com.mysql.jdbc.Driver

2022-04-16 17:36:57 126

原创 Qlik Sense循环之Do...Loop

Do...Loop 控制语句是一个脚本迭代构造,可不断执行一个或几个语句,直到逻辑条件得到满足为止,常与while一起使用。如加载C:\QlikSense 下的file1.csv,file2.csv...file10.csvSet i = 1;Do while i <= 10 T: Load * From C:\QlikSense\file$(i).csv; Let i = i + 1;Loop;...

2021-05-19 10:22:04 250

原创 Qlik Sense 循环2 For Each...Next

For Each...Next是一种对‘列表’元素逐个处理的循环方式。列表元素可以为逗号分隔。其基本语法格式为:For Each var In list 循环体Next;我们还是以上面的例子进行处理For Each m in 1,2,3,4,5,6,7,8,9,10,11,12 TMP: Load * Resident T WHERE Month(date) = $(m); // 把数据导出到qvd文件。导出时如果文件夹不存在,会自动创建,

2021-05-14 10:56:44 368

原创 Qlik Sense 循环1 For...Next

For...Next是一个带有计数器的脚本迭代构造。通过指定起始值和终止值,以及每次移动的步长(默认为1)来进行循环迭代。其基本语法格式为:For var = 起始值 To 终止值 Step 步长 循环体Next;如我们将数据按月拆分输出到qvd文件中。For m = 1 To 12 Step 1 TMP: Load * Resident T WHERE Month(date) = $(m); // 把数据导出到qvd文件。导出时如果文件夹不

2021-05-14 10:51:33 256

原创 Mac系统安装ta-lib库

在Mac系统上安装ta-lib,一开始一直出错,折腾了很久,终于找到了解决办法,最终解决方案如下。使用brew安装Ta-Libbrew install Ta-Lib使用conda安装ta-lib之前pip安装一直出错,最后通过conda安装成功,能够成功import使用。conda install -c conda-forge ta-lib...

2021-05-08 12:12:52 1513 4

原创 chp02-01文本文件的读写

pandas中常见文件读写方法读+ **read_csv**+ **read_excel**+ read_hdf+ read_sql+ read_json+ read_msgpack (experimental)+ read_html+ read_gbq (experimental)+ read_stata+ read_sas+ read_clipboard+ read_pickle写+ **to_csv**+ **to_excel**+

2021-03-30 21:23:02 181

原创 Qlik Sense 集合表达式

这里介绍与聚合函数一起使用时的场景。以SUM为例格式:SUM(集合表达式 要计算的指标),如SUM(集合表达式 AMT) 表示按照集合表达式对AMT进行求和。集合表达式格式:{<字段1 = {元素1 , 元素2 , 元素3 ... } , 字段2 = {元素1 , 元素2 , 元素3 ... } ...>} 序号 说明 写法 1 计算所有的销售额,不依当前选择而变动(这里的【变动】指的是.

2021-03-29 16:25:32 2176

利用Python查询postgresql数据库数据

利用Python查询postgresql数据库数据

2020-02-13

使用Python刷新Tableau数据提取

使用Python刷新Tableau数据提取

2020-02-13

Python日志记录

在python开发的时候,有些时候我们需要将日志信息存储下来用以程序的排查。那么就需要定义一个写日志的函数。而且这个函数最好能够满足在控制台打印出来的同时,将信息存储到本地文件中。 该方法有以下功能: 1. 会在该文件logo.py的父级目录下新建一个log的文件夹,日志文件都会存放在新建的log文件夹下。 2. 日志信息会在控制台打印出来,与使用print效果一样。 3. 在控制台打印出来的同时,日志信息也会写入到本地日志文件logfile里。

2020-02-09

获取内存和CPU的使用情况

获取内存和CPU的使用情况。

2020-02-06

获取内存和CPU使用情况详情,每个程序占用多少内存

获取计算机的内存和CPU使用情况,以及每个程序占用的内容情况。 获取计算机的内存和CPU使用情况,以及每个程序占用的内容情况。 获取计算机的内存和CPU使用情况,以及每个程序占用的内容情况。 获取计算机的内存和CPU使用情况,以及每个程序占用的内容情况。 获取计算机的内存和CPU使用情况,以及每个程序占用的内容情况。

2020-02-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除