自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 问答 (1)
  • 收藏
  • 关注

原创 parquet repetition level & definition level

repeated的列的值有效深度(父节点包含repeated类型)越深,可能的值就越多 ,比如Code ,可能是[0,1,2],具体是哪个值就看这个数据在哪个节点开始重复:code='en' 在language 开始重复也就是R=2;存在数据的值不需要R值,如果数据存在,那么R值就是meta中推导的值:Backword=2,Country=3,所以关注点是哪里需要填充Null,并且对应的D值是多少:如果对应的列的上层节点存在但是这个节点不存在,那么就需要补上Null值。搞懂这个花了点时间,现在总结一下。

2023-06-19 22:56:29 314

原创 VBA 脚本

Sub test()Dim sheet1 As WorksheetSet sheet1 = ThisWorkbook.Worksheets("计件")If TypeName(sheet1.Cells(437, 8).Value) = "Double" ThenMsgBox (TypeName(sheet1.Cells(437, 8).Value))End IfMsgBox

2017-09-06 11:14:26 2632

原创 scala break & continue

看如下脚本:import util.control.Breaks._object TelloWorld { def main(args:Array[String])={ println("hello world") breakable{ for(i1 to 10){ println(i) if(i>4) break} }

2017-05-20 06:28:51 464

原创 shell 命令

1,zip文件打包及解压zip -r xxx.zip ./*unzip filename.zip

2017-05-08 20:32:57 357

转载 HDFS结构

1、HDFS结构hdfs的采用的是master/slave模型,一个hdfs cluster包含一个NameNode和若干的DataNode,NameNode是master。NameNode主要负责管理hdfs文件系统,掌握着整个HDFS的文件目录树及其目录与文件,这些信息会以文件的形式永久地存储在本地磁盘。具体地包括namespace管理(其实就是目录结构),block管理(

2017-05-03 22:02:07 1470

原创 在python中函数是第一类对象

python中,所有的元素都是对象,其中第一类对象的通用特性:可作为值传递,赋值给另一个对象;可以作为元素添加到集合对象中;可以作为参数传递给其他函数;可以作为函数的返回值1,赋值给变量def f1(str):  return len(str)temp=f1print temp('hello')2,添加到集合对象中def f2(str1,

2017-05-01 14:55:54 958

原创 生成器

生成器就是一种变循环边计算的一种函数,或者说是机制,也可以说是一种函数语法定义的一种迭代器,当计算到某一个值的时候,会将当时的状态暂存下来,第二次迭代,会根据当时的状态去计算,所以生成器并不像列表将所有的值放到内存中看下面的例子:将目录下面的所有文件打印出来,一般递归方法def list_file(curpath,files): if os.path.i

2017-05-01 14:29:32 320

原创 spark dataframe API 整理

1,从列表中创建dataframe   列表的每一个元素转换成Row对象,利用parallelize()函数将列表转换成RDD,toDF()函数将RDD转换成dataframe   from pyspark.sql import Row   l=[Row(name='jack',age=10),Row(name='lucy',age=12)]   df=sc.parallelize

2017-04-27 14:52:00 4122

原创 python format

语法它通过{}和:来代替%。“映射”示例通过位置In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}'.format('kzc',18) Out[3]: '18,k

2017-04-18 20:47:30 376

原创 python 小技巧

字典推导式与列表推导式L = [1, 2, 3, 4, 5, 6, 7, 8, 9]#st=dict([(i,i*10) for i in L])st={i:i*10 for i in L}print stx=[m*m for m in range(10)]print x

2017-04-18 20:28:55 263

原创 python 将对象设置为可迭代有两种实现方式

python 将对象设置为可迭代有两种实现方式:1,实现  __getitem__(self)class Library(object):    def __init__(self):        self.value=['a','b','c','d','e']    def __getitem__(self, i):        if i>=len(s

2017-04-17 20:28:03 4192

原创 python 面试题

Python的类就是个语法糖。一个函数写在类里面和写在类外面没有区别,唯一的区别就是参数,所谓实例方法就是第一个参数是self,所谓类方法就是第一个参数是class,而静态方法不需要额外的参数,所以必须区分deffoo(x):    print"executing foo(%s)"%(x) classA(object):    def

2017-04-16 16:55:32 531

原创 python 声明式编程

方式一:content=[]f=open("E:\python\data\stock_entrust.txt",'r')line = f.readline()print linewhile(line): content.append(line) line=f.readline()print len(content)f.close()方式二:with o

2017-04-16 11:48:34 982

原创 python 正则表达式,函数说明

1,findall(pattern,string)返回所有符合pattern的字符串,返回值是列表的格式;如果匹配有多个分组,那么列表的元素是一个元组key="my w2014-12-12orld helLO a2015-10-10ahello"pat=re.compile("(\d+)-(\d+)-(\d+)",re.I)result=pat.findall(key)prin

2017-03-31 18:58:24 456

转载 parquet 原理

最近偶然的因素,突然觉得这个格式很神奇,找了很多文章细读了一遍,特整理如下. 第一篇文章里面讲的很通俗,易懂.但是对于之前没有背景的,细节地方不好理解,因为里面的实例比较简单和真实案例差别比较大.深入分析Parquet列式存储格式http://www.infoq.com/cn/articles/in-depth-analysis-of-parquet-column-

2017-03-26 09:10:54 2142

原创 spark 报错收集

最近做spark sql开发碰到了许多问题,下面对报错信息做下记录1,  StructType can not accept object in type 将RDD创建成DataFrame的时候,报上述错误,修正方式如下:将RDD中的行转换成Row类型就可以了2,1,  RDD转换成DataFrame的时候,报错:TypeError  Integer typ

2017-01-11 19:54:08 1868

原创 sparkSql(hive) 复合数据类型的使用

在Hive中可以使用复合数据类型,有三种常用的类型:Array 数组,Map 字典,Struct结构。在sparkSql中RDD可以转换成非常灵活的DataFrame,但是如果需要将数据结构完整的存储为Hive表,那么在RDD到DataFrame转换中需要遵守一些规则。在Hive中创建复合数据类型的语法:create table plan(clientid string

2017-01-09 22:48:09 3026

原创 TypeError:'NoneType' object is unsubscriptable

python_spark开发的时候,报错TypeError:'NoneType' object is unsubscriptable   打印RDD首条数据没有问题,但是整体插入到HIVE表的时候就报错了,分析发现当结构organization不存在的时候,item[1][1][0],item[1][1][1],item[1][1][2]) 均将无法访问,在范文钱对RDD做一个过滤即可解决问题

2016-12-03 12:48:03 5053

转载 python 函数式编程

函数式编程首先要确定一点就是:函数 != 函数式,函数式编程是一种编程的范式。 特点:把计算视为函数而非指令纯函数式编程,不需要变量,没有副作用,测试简单支持高阶函数,代码简洁Python 函数式编程的特点需要注意的是,Python 不是也不可能会成为一种纯函数是编程语言,但 Python 仍支持许多有价值的函数式编程语言的构建方法。Python 不是纯

2016-12-03 12:24:42 524

原创 combineByKey报错 unsupported oprand t

def createCombiner(x):return [x]def mergeValue(x,y):x.append(y)return xdef mergeCombiners(x,y):return len(list(set(x+y)))a.combineByKey(createCombiner,mergeValue,mergeCombiners)程序原

2016-12-01 09:27:30 551

原创 python 排序

sorted函数返回一个List对象排序后的副本,sorted(temp,key,reverse),key可以使用函数实现,接受一个值,通过这个值来进行排序#coding=utf-8import timeimport datetimeimport osimport mathdef just_order(a): temp=a[1] data_pat=re.co

2016-11-23 20:48:41 319

原创 使用spark检查数据质量

由于使用HIVE查询出来的报表数据会因为源数据的异常导致不可用,这个时候需要根据数据情况修改代码,下面是利用spark针对几个检查项,将检查结果插入到表中# -*- coding: utf-8 -*-from pyspark import SparkContextfrom pyspark import HiveContextfrom pyspark.sql import

2016-11-23 19:30:03 2545

原创 python对json格式字符串的处理

import jsonimport osdef pro_json(line):element=[]codejson=json.loads(line)cust_pty_no=codejson['cust_pty_no']entrust_no=codejson['entrust_no']tradingcode=codejson['tradingcode']if 'err

2016-10-17 19:03:40 3097

原创 python异常的处理

主动抛出异常raise IOError('this is a test')def get_age():while True:  #大小写敏感 True  不是 truetry:n=int(raw_input('How Old You\n'))return nexcept ValueError:print 'please input an integer va

2016-10-17 19:02:10 396

原创 python输入输出的处理

可以借鉴c语言的字符串x=0.2345623print ('%.2f' %x)y='hello world'print ('%.2f means %s\n' %(x,y))还有format 这一块功能强大,但是也比较复杂文件夹及文件的操作,windows 是左耳,linux是右耳import osprint os.getcwd() #返回当前的工作目

2016-10-17 19:01:15 495

原创 python集合的处理

序列的通用方法:1,索引2,负数索引3,切片a=(1,2,3,4,5,6)print a[0:0] =>()print a[0:1] =>(1,)print a[0:2] =>(1,2)print a[0:2] =>(1,2,3)4,拼接(+/*)a=[1,3,4]b=['a','b','c']c=a+bprint c5, len()

2016-10-17 19:00:16 507

原创 python字符串的处理

字符串:通过索引访问字符串,几乎所有的通过索引来访问的情况,索引用下标表示,[]a="hello world"print a[0]print a[-1]--通过python的for range 来处理b="  123456789 "a=b.strip()total=0for i in a:total+=int(i)print total

2016-10-17 18:56:27 473

原创 ORACLE的闪回

ORACLE的闪回有三种实现方式1,   回收站技术当参数设置为ON的时候可以使用回收站的闪回功能,使用的语法为:查询该功能开启与否的语法为:该功能存在以下限制:1,   需要闪回的对象不能属于系统用户2,   ORACLE并不能保证,删除的对象存在于回收站,也并不能做时间上的保证2,   使用flahback archive对象该技术用于特定的对象使用闪回功能。F

2016-07-04 10:06:28 476

原创 ORACLE 中split功能 & 包

--包成员返回的嵌套表类型必须是模式级别的,不能是包级别的create type source_str1 is table of varchar2(100);create or replace package test_pkgistype source_str is table of varchar2(100); function split_sub(split_v

2015-08-01 16:49:16 704

原创 sqlplus相关

1,/表示上次执行的命令如:insert into aa values('a',1);/那么sqlplus会执行两次插入操作2,listlist 列出所有缓冲区的命令list * 列出当前的缓冲区命令list 3 列出缓冲区的第三条命令3,run显示缓冲区的命令,然后执行3,getget file 用sqlplus查看文件

2015-08-01 09:43:29 315

原创 Oracle 作业设置

I,概述dbms_out.submit (job out binary_integer,what in varchar2,next_date in date default sysdate,interval in varchar2 default 'null',no_parse in boolean default false,instance in binary_inte

2015-07-26 11:37:55 1026

原创 表函数

1,简单的返回结果集----------------函数的参数是游标,返回值是嵌套表create type ticker is table of varchar2(10);--返回的数据类型必须是模式级别的create or replace function f1(cur sys_refcursor) return tickerisa ticker:=ticker();

2015-06-21 16:41:13 354

原创 oracle 集合的类型

集合的类型有三种:关联数组,varry,嵌套表关联数组只在PL/SQL中有效,无需初始化----------下标可以使用pls_integerdeclaretype a is table of varchar2(10) index by pls_integer;l_row pls_integer;name a;beginname(1):=

2015-06-21 12:08:49 666

空空如也

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

TA关注的人

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