大数据
AlexInML
专注于机器学习和数据挖掘、个性化推荐、深度学习等领域。
联系方式:AlexInML@outlook.com
展开
-
Spark Reduce TypeError: 'int' object has no attribute '__getitem__
在使用Reduce这个函数需要特别注意的一点是,reduce必须要求输入与输出是相同类型,例如:>>> rddx = sc.parallelize([('a',1),('b',2),('c',5)])>>> rddx.reduce(lambda x,y:x[1]+y[1]) #报错 TypeError: 'int' object has no attribute '__getitem原创 2016-07-31 16:20:44 · 9061 阅读 · 1 评论 -
Spark把RDD数据保存到一个单个文件中
Spark是当前最流行的分布式数据处理框架之一,相比于Hadoop,Spark在数据的处理方面更加灵活方便。然而在最近的使用中遇到了一点小麻烦:Spark保存文件的的函数(如saveAsTextFile)在保存数据时都需要新建一个目录,然后在这个目录下分块保存文件。如果我们想在原有的目录下增加一个文件(而不是增加一个目录),Spark就无能为力了。 有网友给出建议,用rddx.rep原创 2016-09-03 11:26:37 · 43869 阅读 · 7 评论 -
Spark变量访问总结
Spark程序在变量的访问方式上与传统的java程序有一些不同,导致了传值和结果上的差异。本文通过一组实验来分析Spark对各种形式变量的处理方式。 下面这个简单的小程序创建了 - 静态变量staticVariable、静态广播变量staticBroadcast、静态累加器staticAccumulator; - 成员变量objectVariable、成员广播变量objectBr原创 2016-09-25 20:55:28 · 5739 阅读 · 0 评论 -
hadoop命令OutOfMemoryError GC
使用hadoop命令对hdfs文件系统进行操作时(例如getmerge、put等)可能会遇到OutOfMemoryError这样的异常,如下图: 解决方法:增大hadoop client的最大内存占用限制。 命令: export HADOOP_CLIENT_OPTS=”-Xmx10g”,具体是10g还是其他数值可以根据自己机器的具体情况调整。原创 2017-05-12 15:17:41 · 1691 阅读 · 0 评论 -
在Spark上进行两个大数据集的匹配
分布式框架Spark把任务划分到各个子节点进行处理,可以有效利用小机器的CPU来处理大规模数据集。但是Spark也存在局限性,在某些问题的处理上会力不从心,例如两个大数据集的匹配。出现这种问题的原因主要是分布式系统的优势在于机器的数量,子节点的CPU和内存通常配置较低。问题描述:如果有两个大数据集A和B,假设A有几千万条数据,B有几百万条数据,需要把B中的每一条数据和A中的每一条数据进行比较。下面原创 2017-07-09 22:59:52 · 7344 阅读 · 4 评论