接入门篇-2
5 函数
内置函数可以直接使用,不需要导入
5.1 斐波那契数列
输入
# def fib(n): # write Fibonacci series up to n
# """Print a Fibonacci series up to n"""
# a, b = 0, 1
# while a
# print(a)
# a, b = b, a+b
def fib2(n): # return Fibonacci series up to n
"""Return a list containing the Fibonacci series up to n"""
result = []
a, b = 0, 1
while a
result.append(a) # see below
a, b = b, a+b
return result
# fib(100)
fib2(100)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
输出
5.2 自定义实现trim函数
输入
def dif_trim(str):
if str[:1] !=' ' and str[-1:] !=' ':
return str
elif str[:1] ==' ': #左边有空格
return dif_trim(str[1:]) #迭代
else: #右边有空格
return dif_trim(str[:-1])
ns=' 222 33 '
print(ns)
dif_trim(ns)
'222 33'
输出
5.3 map函数
输入
def f(x):
t=x-2
return t
l1=[1,2,3]
map(f,l1)
# map?
map(str,[1,2,3])
# map(str.lower,['a','B','c'])
# map(str.lower,'abCdeF')
# map(round,[1.2,3.5]) #把一列变量应用到一个函数上,并返回结果
['1', '2', '3']
输出
输入
map(str,[1,2,3])
['1', '2', '3']
输出
5.4 reduce函数
输入
from functools import reduce
def fn(x, y):
return x * 10 + y
def char2num(s):
digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
return digits[s]
map(char2num, '13579')
# reduce(fn, map(char2num, '13579'))
[1, 3, 5, 7, 9]
输出
6 获取数据
# import pyspark.sql as ss
#spark= ss.SparkSession.builder.appName("zhaosr_pyspark").enableHiveSupport().getOrCreate()
# spark.stop()
sql1='select * from dw_god_d_msk_service where p_date =20180416'
msk_service =spark.sql(sql1)
输入
msk_service.columns
msk_service.count()
400649
输出
7 python语言特性案例
输入
d = {}
with file('text.txt') as fp: #with as 实际上执行了打开文件、读取数据到变量、关闭文件。
for line in fp: #fp是可迭代对象
words = line.split() #line是文本行,str型.split为str类型自身的函数。
for word in words:
d[word] = d.get(word, 0) + 1 #循环累计。get方法dict类型是通过key得到value的方法。
for k, v in d.iteritems(): #iteritems是dict类型获取key和value对的方法。
print k, v
ok 4
I 2
am 2
are 2
not 1
you 2
输出
输入
#python读取的文件为可迭代对象,可按行读取数据
# from collections import Iterable
# isinstance(fp, Iterable) # str是否可迭代
True
输出
输入
#如果不使用with as 打开文件,就需要以下步骤
# file_test = open("text.txt")
# print file_test.next()
# print file_test.seek(0)
# print file_test.readline()
# file_test.close()
# file_test
# 'a :b,c;d'.split(',')
['a :b', 'c;d']
输出
下一节将从实例开始!
领取专属 10元无门槛券
私享最新 技术干货