- 博客(167)
- 资源 (5)
- 收藏
- 关注
原创 Install Python Library in Databricks
【代码】Install Python Library in Databricks。
2023-05-01 21:08:24
442
原创 常见数据类型与spark中数据类型映射
定义一个数据类型映射字典 def __init__(self): self.DataTypeMappings = { 'STRING_TYPES': ['char', 'comment', 'nchar', 'ntext', 'nvarchar', 'shortdescription', 'string', 'tokencode', 'varchar', StringType()],
2023-04-19 16:57:58
312
原创 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
417
原创 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
652
原创 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
247
原创 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
1192
原创 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
188
原创 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
2829
原创 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
252
原创 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
196
原创 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
247
原创 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
1636
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
2477
原创 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
256
原创 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
272
原创 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
195
原创 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
169
原创 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
362
原创 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
743
原创 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
809
原创 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
148
原创 08-数据库连接池
数据库连接池的必要性在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:在主程序(如servlet、beans)中建立数据库连接进行sql操作断开数据库连接这种模式开发,存在的问题:普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。**
2022-04-17 18:46:30
267
原创 07-数据库事务
数据库事务介绍事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务**回滚(rollback)**到最初状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作
2022-04-17 13:28:01
822
原创 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
2070
原创 05-操作Blob类型字段
MySQL BLOB类型MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。插入BLOB类型的数据必须使用PreparedStatement,因为BLOB类型的数据无法使用字符串拼接写的。MySQL的四种BLOB类型(除了在存储的最大信息量上不同外,他们是等同的)类型大小(单位:字节)TinyBlob最大255Blob最大65KMediumBlob最大16MLongBlob最大4G实际使用中根据需
2022-04-16 22:22:39
463
原创 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
398
原创 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
1461
原创 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
346
原创 02-使用PreparedStatement实现CRUD操作之CUD
操作和访问数据库数据库连接被用于向数据库服务器发送命令和 SQL 语句,并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。PrepatedStatement:SQL 语句被预编译并存储在此对象中,可以使用此对象多次高效地执行该语句。CallableStatement:用于执行 SQL 存储过程使用Stateme
2022-04-16 17:38:51
178
原创 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
176
原创 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
317
原创 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
467
原创 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
316
原创 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
1947
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
240
原创 Qlik Sense 集合表达式
这里介绍与聚合函数一起使用时的场景。以SUM为例格式:SUM(集合表达式 要计算的指标),如SUM(集合表达式 AMT) 表示按照集合表达式对AMT进行求和。集合表达式格式:{<字段1 = {元素1 , 元素2 , 元素3 ... } , 字段2 = {元素1 , 元素2 , 元素3 ... } ...>} 序号 说明 写法 1 计算所有的销售额,不依当前选择而变动(这里的【变动】指的是.
2021-03-29 16:25:32
2474
Python日志记录
2020-02-09
获取内存和CPU使用情况详情,每个程序占用多少内存
2020-02-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人