栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

python

python

1、用 import 导入模块,需要按照“模块.函数” 的格式使用这个模块的函数。
在确定自己不会导入多个同名函数(从不同模块导入)的情况下,如果不希望在每次调用函数的时候,都要写上模块的名字,可以使用“from模块 import 函数” ,就可以直接使用函数,而不需要模块名作为前缀。

2、解决Hadoop报错:Failed to locate the winutils binary in the hadoop binary path
出错的原因在于window本地无法获取hadoop的配置。
下载到本地并解压,添加环境变量 HADOOP_HOME

3、解决 windows上The root scratch dir: /tmp/hive on HDFS should be writable.Current permissions are: ------
首先需要在windows路径下有hadoop的winutils.exe。并加该bin目录加入到环境变量,不加的话下面的命令需要使用到全路径。
windows上使用如下命令:将制定路径的文件权限修改

%HADOOP_HOME%binwinutils.exe ls C:tmphive
%HADOOP_HOME%binwinutils.exe chmod 777 C:tmphive
%HADOOP_HOME%binwinutils.exe ls C:tmphive

4、今天在使用pyspark的时候出现了一个错误,就是“py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM”,具体解决方法如下:在从pyspark导入SparkConf之前先执行上面的语句,作用就是初始化找到本机安装的spark的环境,这样就可以了。

import findspark
findspark.init()

from pyspark import SparkConf

5、x[0]是整型的话 key=tuple(x[0]) 会报错 :TypeError: 'int' object is not iterable

   key=[x[0]]
   print(type(key)) 

打印结果是
总结:一个整型数字只能转换成列表,不能转换成元组。

6、Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串

x=",".join(i for i in("anla","xjh","james"))

结果值 : 'anla,xjh,jamesa'

7、排序

            def f_sort_combine(x):
                assert (len(x) >= 1)

                def f_cmp(y, z): #升序
                    if y[0] == z[0]:
                        return 0 #0代表不变换
                    elif y[0] > z[0]:
                        return 1 # 1代表变换
                    elif y[0] < z[0]:
                        return -1 # -1代表不变换

                # (statdate,tuple(a,b,c,...))
                src_list = sorted(x, cmp=f_cmp) #sorted 有个reverse参数,=True代表,结果为f_cmp的绝对值。即 变为倒序

8、pyspark 没有 print rdd 方法,python有print方法,因此pyspark使用print只能通过定义函数,如:

def f_print4(x):
	print(x)

9、mapValues是操作 V 的函数 ;groupByKey 是集结同个K,将所有 V 形成列表的函数。flatMap 是将 V列表 爆炸 的函数。foreach 是遍历每条数据,可定义操作的函数。yield 是函数返回值的标记。for i in 函数 的写法,函数返回值应该是个迭代器。

10、编码、解码的问题没搞懂,python的print方法,能够直接打印出中文值的变量,但是不能打印出带中文值元素的列表。

print(sys.stdout.encoding) #UTF-8 可由 setting -> file encodings -> project encoding 调整
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/342717.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号