草庐IT

re-doing-it-wrong

全部标签

java - Hadoop Mapreduce Wrong result without errors - 列数检查

我尝试在CentOS中构建一个HadoopMapreduce程序来检查输入文件中的列。文件仅包含文本,不包含XML,内部看起来像这样:Apple|Orange|Grape|AppleBanana|Apple|MelonMelon|OrangeApple|Banana|GrapeMelon|Orange列由分隔符“|”分隔。我的程序旨在检查每一行的列数通过附加每列的第一个字符,例如Apple|Orange|Grape|Apple->AOGA键建立后,程序会计算每个键的长度,以检查每一行中有多少列。其实我以后会用这些键来区分列数超过指定限制的行。输出数据格式是:(Keys,Keys.len

hadoop - Sqoop + S3 + Parquet 导致 Wrong FS 错误

尝试使用Sqoop将Parquet格式的数据导入S3时,如下:bin/sqoopimport--connect'jdbc:[conn_string]'--table[table]--target-dirs3a://bucket-name/--hive-drop-import-delims--as-parquetfile...我收到以下错误:ERRORtool.ImportTool:ImportedFailed:WrongFS:s3a://bucket-name/,expected:hdfs://localhost:9000我在导入非parquet数据或直接通过HDFS使用s3a时没有问

hadoop - pig : is it possible to write a loop over variables in a list?

我必须循环列表中的30多个变量[var1,var2,...,var30]对于每个变量,我使用一些PIGgroupby语句,例如grouped=GROUPdatabyvar1;data_var1=FOREACHgrouped{GENERATEgroupasmygroup,COUNT(data)ascount;};有没有办法遍历变量列表,或者我被迫在我的代码中手动重复上面的代码30次?谢谢! 最佳答案 我认为您正在寻找的是pigmacro为您的30个变量创建一个关系,并通过foreach对它们进行迭代,并调用一个获取2个参数的宏:您的数

java - 从数据帧 'java.lang.IllegalArgumentException: Wrong FS: file:/tmp/spark expected: hdfs://nameservice1' 创建 Hive 表时出错

我是spark的新手。我正在尝试开发一个使用Spark1.6将json数据保存到Hive表的应用程序。这是我的代码:valrdd=sc.parallelize(Seq(arr.toString))//arristheJsonarrayvaldataframe=hiveContext.read.json(rdd)dataframe.registerTempTable("RiskRecon_tmp")hiveContext.sql("DROPTABLEIFEXISTSRiskRecon_TOES")hiveContext.sql("CREATETABLERiskRecon_TOESasse

scala - Spark : split only one column in dataframe and keep remaining columns as it is

我正在读取spark数据框中的文件。在第一列中,我将得到两个用“_”连接的值。我需要将第一列拆分为两列,并保持其余列不变。我将Scala与Spark结合使用例如:col1col2col3a_1xyzabcb_1lmnopq我需要有新的DF作为:col1_1col1_2col2col3a1xyzabcb1lmnopq只有一列需要拆分成两列。我尝试使用带有df.select的拆分函数,但我需要为剩余的列编写选择并考虑具有100列的不同文件,我想对所有文件使用可重用代码。 最佳答案 你可以这样做:importspark.implicits

python - hadoop中的语法错误: word unexpected (expecting "do") map. py

我已经为单词计数概念编写了一个程序map.py和reduce.py程序。我已经成功运行了单独执行的程序。但最后一步执行不成功。我得到了错误(意外的行为)。我该如何解决这个问题。我正在上传我的map.py、reduce.py程序和下面的错误声明。map.py:importsysforlineinsys.stdin:line=line.strip()words=line.split()forwordinwords:print'%s\t%s'%(word,"1")reduce.py:importsysc_count={}forlineinsys.stdin:line=line.strip()

hadoop/HDFS : Is it possible to write from several processes to the same file?

f.e.创建文件20bytes.第一个进程将从0写入4第二个从5到9等等我需要它来使用我的MapReduce并行创建一个大文件。谢谢。附言也许它还没有实现,但总的来说是可能的——请指出我应该挖掘的地方。 最佳答案 您能否解释一下您计划在创建此文件后对其执行的操作。如果您需要将它从HDFS中取出然后使用它,那么您可以让HadoopM/R创建单独的文件,然后使用像hadoopfs-cat/path/to/output/part*>这样的命令localfile将各个部分组合成一个文件并保存到本地文件系统。否则,您无法让多个写入器打开同一个

hadoop - 错误 2103 : doing work on Longs

我有数据storetrn_datedept_idsale_amt12014-12-151011000765512014-12-151011000765412014-12-151011000754462014-12-1510410008654482014-12-14101100000082014-12-15101100865761我正在尝试使用以下代码聚合数据-加载数据(尝试使用HCatLoader()和PigStorage()两种方式)data=LOAD'data'USINGorg.apache.hcatalog.pig.HCatLoader();group_table=GROUPda

java - HIPI API : does it process 1 image per map task?

我正在阅读与Hadoop的HIPI图像处理API相关的论文,网址为:http://cs.ucsb.edu/~cmsweeney/papers/undergrad_thesis.pdf在解释其中的协方差示例时,该论文说“因为HIPI为每个映射任务分配一个图像,所以很容易随机抽取100个补丁的图像并执行此计算”。但是论文中显示的第一个图描绘了一个架构,其中多个图像被输入到一个maptask中!令人惊讶的是,他们写道一张图像由一个maptask处理,因为它会产生太多maptask,因为他们也在解决小文件问题。如果这是真的,那么带有MultithreadedMapper的序列文件是一个更好的选

hadoop - HDFS 连接操作 : Does it lead to increased seek time?

我试图了解HDFS如何实现concat操作并深入到以下部分code.在我看来,从这个实现来看,concat只是对目标文件的inode进行元操作,实际block没有移动。我在想这是否会导致碎片化+增加寻道时间,因为不同的block会位于磁盘上的不同位置(考虑磁盘)。这个假设是否正确?如果是,我们可以避免这种情况吗? 最佳答案 经过几次实验,我找到了自己问题的答案。在非常频繁的文件连接操作(每分钟约1k)之后,数据节点开始提示一天左右的block太多,这让我相信这确实会导致碎片化和磁盘上block数量的增加。我使用的解决方案是编写一个单