小编HHH*_*HHH的帖子

在Hadoop中实现自定义Writable?

我在Hadoop中定义了一个自定义的Writable类,但Hadoop在运行我的程序时给出了以下错误消息.

java.lang.RuntimeException: java.lang.NullPointerException
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:115)
at org.apache.hadoop.io.SortedMapWritable.readFields(SortedMapWritable.java:180)
at EquivalenceClsAggValue.readFields(EquivalenceClsAggValue.java:82)
at org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:67)
at org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:40)
at org.apache.hadoop.mapred.Task$ValuesIterator.readNextValue(Task.java:1282)
at org.apache.hadoop.mapred.Task$ValuesIterator.next(Task.java:1222)
at org.apache.hadoop.mapred.Task$CombineValuesIterator.next(Task.java:1301)
at Mondrian$Combine.reduce(Mondrian.java:119)
at Mondrian$Combine.reduce(Mondrian.java:1)
at org.apache.hadoop.mapred.Task$OldCombinerRunner.combine(Task.java:1442)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.sortAndSpill(MapTask.java:1436)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1298)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:437)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1136)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
Run Code Online (Sandbox Code Playgroud)

引起:java.util.concurrent.ConcurrentHashMap.hash的java.lang.NullPointerException(ConcurrentHashMap.java:332)....

EquivalenceClsAggValue是我定义的Writable类的名称,这是我的类:

public class EquivalenceClsAggValue implements WritableComparable<EquivalenceClsAggValue>{

public ArrayList<SortedMapWritable> aggValues;  
public EquivalenceClsAggValue(){        

    aggValues = new ArrayList<SortedMapWritable>();
}
@Override
public void readFields(DataInput arg0) throws IOException {

    int size = arg0.readInt();

    for (int i=0;i<size;i++){
        SortedMapWritable tmp = new …
Run Code Online (Sandbox Code Playgroud)

serialization hadoop mapreduce

3
推荐指数
1
解决办法
3192
查看次数

如何限制映射器的数量

我明确指定了我的java程序中使用的映射器数量conf.setNumMapTasks(),但是当作业结束时,计数器显示已启动的映射任务的数量超过了指定的值.如何将映射器的数量限制为指定值?

hadoop mapreduce

3
推荐指数
1
解决办法
1万
查看次数

如何停止 Oozie 协调器?

我运行了一个 Oozie 协调器,它每小时运行一个工作流。我没有它的 id,当我运行命令时oozie jobs -oozie http://localhost:11000/oozie,它只向我显示工作流作业,没有协调器。我想阻止此协调器进一步处理,我该怎么做?

hadoop oozie oozie-coordinator

3
推荐指数
1
解决办法
4177
查看次数

如何基于Spark中的DataFrame的多个值编写条件

我正在使用Spark应用程序(使用Scala),我有一个包含多个值的List.我想使用这个列表where为我的DataFrame 编写一个子句,并只选择元组的一个子集.例如,我的List包含'value1','value2'和'value3'.我想写这样的东西:

mydf.where($"col1" === "value1" || $"col1" === "value2" || $"col1" === "value3)
Run Code Online (Sandbox Code Playgroud)

我如何以编程方式执行此操作导致列表包含许多值?

scala apache-spark

3
推荐指数
1
解决办法
1897
查看次数

如何在Spark中一次对多个列进行聚合

我有一个包含多列的数据框.我希望按其中一个列进行分组,并将其他列聚合一次.假设该表有4列,cust_id,f1,f2,f3,我想通过cust_id进行分组,然后获得avg(f1),avg(f2)和avg(f3).该表将包含许多列.任何提示?

下面的代码是一个好的开始,但由于我有很多列,手动编写它们可能不是一个好主意.

df.groupBy("cust_id").agg(sum("f1"), sum("f2"), sum("f3"))
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

3
推荐指数
1
解决办法
6897
查看次数

将sqlContext作为Spark中的隐式参数传递

我在Scala对象中有一个函数,它具有以下签名

def f(v1:Int)(implicit sqlContext: SQLContext)
Run Code Online (Sandbox Code Playgroud)

当我尝试从spark-shell调用此函数时,我称之为

f(1)
Run Code Online (Sandbox Code Playgroud)

我希望现有的sqlContext隐式传递给它,但事实并非如此.如何让它工作,以便sqlContext自动传递给这个函数?

--------------更新-------------------

我试着在调用我的函数之前在spark-shell中导入sqlContext.implicits._,但它没有帮助

scala apache-spark

3
推荐指数
1
解决办法
879
查看次数

如何对熊猫列进行多数表决

我有一个有10个不同的列的数据帧,A1A2,..., A10。这些列包含yn。我想创建,其值是另一列y如果大多数列(A1A2,..., A10)是yn其他。我怎样才能做到这一点?

python pandas

3
推荐指数
1
解决办法
286
查看次数

Azure表中查询结果大小的限制是多少?

我想知道Azure表存储中查询结果的大小是否有限制?例如,如果我查询一个分区并且它包含许多记录,是否有任何问题?

azure-table-storage

2
推荐指数
1
解决办法
3102
查看次数

在依赖 OpenMP 的 Mac 上安装 Lightgbm

我是 python 新手,想在我的 macbook 上安装lightgbm。我做了一个pip install lightgbm,它说安装成功。但是,当我尝试将其导入我的笔记本时,我收到以下错误消息:

../anaconda/envs/python3/lib/python3.6/ctypes/__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error)
342 
343         if handle is None:
--> 344             self._handle = _dlopen(self._name, mode)
345         else:
346             self._handle = handle

OSError: dlopen(../anaconda/envs/python3/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/7/libgomp.1.dylib
Referenced from: ../anaconda/envs/python3/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so
Reason: image not found
Run Code Online (Sandbox Code Playgroud)

lightgbm 网站上的文档使用brew install.... 我的问题是我是否必须进行 brew install?如果是这种情况,为什么 pip 安装显示安装成功呢?

python pip openmpi python-3.x lightgbm

2
推荐指数
1
解决办法
4205
查看次数

如何使用 OR 条件合并两个 pandas 数据框

我有两个数据框,我想根据几列加入。但是,我的连接逻辑中有一个“OR”,例如我想基于列['A','B','C']或['A','B','D']进行连接。我有以下代码要基于一组列加入,但如何添加第二组列?

 pd.merge(df1,df2, how='inner',left_on = ['A','B','C'], right_on = ['A','B','C'])
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
1593
查看次数