草庐IT

developer$career$IT

全部标签

hadoop - hive : Replace string/pattern in row if it exists else do nothing

我有一张表A,其中包含ID、姓名、年龄。>idnameage>{20}Joan12>3James12>12Jill12>{54}Adam12>{10}Bill12我需要移除{}周围的“id”字段。我试过这个:translate(regexp_extract(id,'([^{])([^}])',2),'{','')它有效,但对于没有{}的值返回null。id312有没有办法让我得到输出为???id203125410 最佳答案 您可以使用regexp_replaceudf来删除“{}”,例如:selectregexp_replace(i

scala - 停止 Spark Streaming : exception in the cleaner thread but it will continue to run

我正在开发一个Spark-Streaming应用程序,我只是想获得一个KafkaDirectStream工作的简单示例:packagecom.usernameimport_root_.kafka.serializer.StringDecoderimportorg.apache.spark.sql.SparkSessionimportorg.apache.spark.streaming.kafka._importorg.apache.spark.streaming.{Seconds,StreamingContext}objectMyAppextendsApp{valtopic=args(

hadoop - pig : Select records from a relaltion only if it is present in another relation

我有以下电影数据库的数据集:Ratings:UserID,MovieID,RatingMovies:MovieID,Genre我使用以下方法过滤掉类型为“Action”或“war”的电影:movie_filter=filterMoviesby(genrematches'.*Action.*')OR(genrematches'.*War.*');现在,我必须计算war片或Action片的平均收视率。但是评级存在于评级文件中。为此,我使用查询:movie_groups=GROUPmovie_filterBYMovieID;result=FOREACHmovie_groupsGENERATE

Hadoop MapReduce : Is it possible to only use a fraction of the input data as the input to a MR job?

我的输入数据的关键类是WritableComparable,它以MapFile的形式存在。有没有什么方法可以设置最小和最大键值,并且只将记录传输到键值介于两者之间的映射器? 最佳答案 这是不可能的。因为对于map-reduce作业,我们只是指定输入。我们可以做的一件事是,在映射器中编写一个条件。如果键是黑白最小值和最大值,则只处理键值对并将输出发送到reducer。否则,什么都不做。但即使在这种情况下,我们的map阶段也会处理所有输入,而reduce阶段只会处理我们指定的键范围。更好的方法:当在给定输入上运行map-reduce作业

java - Hadoop : set a variable like hashSet only once so that it can be utilized multiple times in each map task

您好,我有一个HashSet,它需要在hadoop中的每个映射任务中使用。我不想多次初始化它。我听说可以通过在配置函数中设置变量来实现。欢迎提出任何建议。 最佳答案 看来你还没有真正了解Hadoop的执行策略。如果你是分布式模式,你不能在多个map任务中共享一个集合(HashSet)。这是因为任务是在它们自己的JVM中执行的,并且它不是确定性的,即使不使用jvm重用,你的集合在jvm被重置后仍然存在。您可以做的是在计算开始时为每个任务设置一个HashSet。因此您可以覆盖setup(Contextctx)方法。这将在调用映射方法之前

java - Apache Hadoop : Can it do "time-varying" input?

即使经过一些谷歌搜索,我也没有找到答案。我的输入文件是由一个进程生成的,当文件达到1GB时,该进程将它们分块。现在,如果我要运行一个处理dfs中的输入目录的mapreduce作业,我如何确保该作业在hadoop作业运行时获取添加到同一输入目录的文件?我觉得这几乎是不可能的,因为当hadoop作业运行时,它会计算剩余时间和所有这些东西,所以当我的输入不断堆积或换句话说是“可变的”时,Hadoop不会知道如何管理它-这是我的猜测。我想知道您对此的看法以及对此的最佳替代方法!感谢您的帮助。 最佳答案 您描述的用例不是Hadoop设计用来处

java - Hadoop : Tools for visualizing key value data and files for development

是否有任何简单、易于启动的java工具来可视化来自mapreduce作业目录的键/值数据?具体来说,我想浏览一个20个作业的mapreduceworkflow,点击单个文件并查看数据,甚至可能看到文件大小的直方图。这里有一些注意事项,例如-一些文件有序列化数据(不仅仅是文本)显然,这个系统在“云规模”上使用可能会很愚蠢,而不是一个开发工具。尽管如此,这样的工具对于开发和本地调试大型连接的m/r管道很有用。这是出于开发目的(我不是试图在真实集群中可视化分布式键/值hadoop数据)。 最佳答案 检查KarmaSphereStudioM

hadoop - HBase 旧 WALs : what it is and how can I clean it?

我们的小型hadoop集群空间不足,因此我检查了HDFS上的磁盘使用情况,发现大部分空间都被/hbase/oldWALs文件夹占用。我查看了“HBaseDefinitiveBook”和其他书籍、网站,我还在谷歌上搜索了我的问题,但我没有找到合适的回复...所以我想知道这个文件夹是做什么的,有什么用,以及如何在不破坏一切的情况下从这个文件夹中释放空间...如果它与特定版本有关...我们的集群位于Cloudera(hbase0.98.6)的5.3.0-1.cdh5.3.0.p0.30下。感谢您的帮助! 最佳答案 仅供引用我已经在hbas

docker run -d 和docker run -it 的区别

dockerrun-iti:interactive代表交互-t:tty分配伪TTY测试不带前台进程的,例如centos/ubuntu>dockerrun-itubunturoot@a30a87e0e065:/#exitexit>dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES我们发现容器已经退出了>dockerrun-itubunturoot@a30a87e0e065:/#输入Ctrl+P+Q>dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESe51e423ac575ubunt

php - E_NOTICE : How useful is it REALLY to fix every one?

首先我知道这个问题在这里不止一次出现过:WhyshouldIfixE_NOTICEerrors?WhyshouldIfixE_NOTICEerrors?Prosandcons但是我修复所有E_NOTICE的次数越多(正如人们所说的那样),我就越注意到:我正在微优化我实际上正在编写更多代码并使我的代码更难维护且速度更慢举个例子:假设您使用MongoDBPHP驱动程序并且您有一个MongoDate名为ts的类var中的对象在代表数据库集合中的单行的类中。现在你像这样访问这个变量:$obj->ts->sec但是PHP抛出了一个合适的(E_NOTICE)因为ts在这种情况下,它本身未定义为对象