sqoop查询生成一个java文件,其中包含一个类,该类包含要在mapreduce中访问每行的列数据的代码.(Sqoop导入是在文本中完成的,没有--as-sequencefile选项,每个记录有1行,列之间有逗号)但是我们如何实际使用它?
我在这个类中找到了一个公共方法parse(),它将Text作为输入并填充了类的所有成员,因此为了练习我修改了wordcount应用程序,将一行文本从mapper中的TextInputFormat转换为一个instnace sqoop生成的类.但是当我调用parse()方法时,这会导致"未报告的exception.com.cloudera.sqoop.lib.RecordParser.ParseError;必须被捕获或声明被抛出".
可以这样做,还是使用每条记录中的数据填充类所必需的自定义InputFormat?
我正在收集R中包含3列的日志:
周,探测和观察次数.
没有观察时没有记录.
week=c(1,2,2,4)
probe=c("A","C","B","C")
obs=c(2,4,3,1)
logs=data.frame(week,probe,obs)
logs
week probe obs
1 A 2
2 C 4
2 B 3
4 C 1
Run Code Online (Sandbox Code Playgroud)
我想重新格式化数据,以便它包括所有星期和所有探测器,即使没有观察,所以它看起来像这样:
week probe obs
1 A 2
1 B 0
1 C 0
1 D 0
2 A 0
2 B 0
2 C 3
2 D 4
3 A 0
3 B 0
3 C 0
3 D 0
4 A 0
4 B 0
4 C 1
4 D 0
Run Code Online (Sandbox Code Playgroud)
我在这里列出了所有探测器:
allprobes=c("A","B","C","D")
Run Code Online (Sandbox Code Playgroud)
我想看看这几周:
allweeks=c(1:4)
Run Code Online (Sandbox Code Playgroud)
我一直在寻找融化,演员,重塑,但我只能设法每个ID或每月获得1行...因为我实际上想要保留原始格式的日志.起初看起来很容易,但我现在卡住了......关于如何以这种方式格式化数据的任何建议? …