Hadoop工程师面试题:使用linux命令完成文本处理

hadoop面试题(大数据)(附答案) Hadoop是一个开源分布式计算平台架构,基于apache(阿帕奇)协议发布,由java语言开发。主要包括运行模式:单机版、伪分布式模式、完全分布式模式 阅读详情

某个目录下有两个文件a.txt和b.txt,文件格式为(ip,username),
列如:
a.txt

127.0.0.1 zhangsan
127.0.0.1 wangxiaoer
127.0.0.2 lisi
127.0.0.3 wangwu
b.txt

127.0.0.4 lixiaolu
127.0.0.1 lisi
每个文件至少100万行,请使用Linux命令完成如下工作:
1)每个文件各自的ip数
2)出现在b.txt而没有出现在a.txt的ip
3)每个user出现的次数以及每个user对应的ip数

答:1)
cat a.txt | awk -F" " ‘{print $1}’ | sort -u > ipa.txt
wc -l ipa.txt

cat b.txt | awk -F" " ‘{print $1}’ | sort -u > ipb.txt
wc -l ipb.txt
2)diff ipa.txt ipb.txt | grep > | awk -F" " ‘{print $2}’

3)cat a.txt b.txt | awk -F" " ‘{u[$1" "$2]+=1} END{for(i in u) print i,u[i]}’
| awk -F" " ‘{u[$2]+=$3;ip[$2]+=1} END{for(i in u) print i,u[i],ip[i]}’

用到linux命令介绍:
1\awk
awk -F” ” ‘BEGIN{} {} END{}’
如: cat a.txt | awk -F” ” ‘{u[$1]+=1} END{for(i in u) print i,u[i]}’
注: 1)-F” ” : F表示分隔符,其后紧跟分隔符,用双引号括起来,不指定分隔符默认使用空格分隔
2)单引号中的语句-‘BEGIN{} {} END{}’可分成三部分:
BEGIN表示{}之前执行的语句,且只执行一次;
{}中的语句对于文件中的每一行执行一次;
END表示所有{}执行结束之后才执行一次的语句.

2\grep
grep str file : 从file中查找所有含有str串的行,并返回该行内容
grep -r update /etc/acpi : 查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串”update”的文件,并打印出该字符串所在行的内容
3\竖线’|’表示管道,前面命令的输出作为后面语句的输入

4\sort
sort file : 对file内容按递增排序(不去重),但并不修改源文件
sort -r file : 对file内容按递减排序(不去重),不改源文件
sort -u file > newfile: 对file内容进行排序(去重),但并不修改源文件,而是输入newfile中

5\‘>’
‘>’file : 表示输出至file内
若要表示字符大于号’>’,使用>转义.

6\wc
wc -l(–lines) file : 统计文件有多少行
wc -c(–chars,–bytes) file : 统计文件含有多少个字节

7\diff
diff filea fileb
注:1)若filea\fileb都有序,则该命令可以错位对齐; 2)若有一个无序,则严格按行比对;
设ipa.txt中内容为:有序
127.0.0.1
127.0.0.2
127.0.0.3
设ipb.txt中内容为:有序
127.0.0.1
127.0.0.3
127.0.0.4
diff ipa.txt ipb.txt -y -W 50 (错位对齐)
127.0.0.1 127.0.0.1
127.0.0.2 <
127.0.0.3 127.0.0.3

127.0.0.4
再使用grep > 即可取出ipb中有而ipa中没有的ip
Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id 。

用mysql实现:不用hive的窗口函数
±—±------±-------±-------------+
| Id | Name | Salary | DepartmentId |
±—±------±-------±-------------+
| 1 | Joe | 70000 | 1 |
| 2 | Henry | 80000 | 2 |
| 3 | Sam | 60000 | 2 |
| 4 | Max | 90000 | 1 |
| 5 | Janet | 69000 | 1 |
| 6 | Randy | 85000 | 1 |
±—±------±-------±-------------+
Department 表包含公司所有部门的信息。

±—±---------+
| Id | Name |
±—±---------+
| 1 | IT |
| 2 | Sales |
±—±---------+
编写一个 SQL 查询,找出每个部门工资前三高的员工。例如,根据上述给定的表格,查询结果应返回:

±-----------±---------±-------+
| Department | Employee | Salary |
±-----------±---------±-------+
| IT | Max | 90000 |
| IT | Randy | 85000 |
| IT | Joe | 70000 |
| Sales | Henry | 80000 |
| Sales | Sam | 60000 |
±-----------±---------±-------+
SELECT
d.Name AS Department,
e.Name AS Employee,
e.Salary AS Salary
FROM Employee e,
Department d
where d.Id = e.DepartmentId

and (
SELECT COUNT(DISTINCT Salary)
FROM Employee AS ee
WHERE ee.DepartmentId = e.DepartmentId
AND ee.Salary >= e.Salary
) <= 3
ORDER BY DepartmentId ASC,Salary DESC
;

运维最新Hadoop集群搭建(二)——Linux系统SSH远程双向免密登陆(3),职场中的中年危机 为了做好运维面试路上的助攻手,特整理了上百道,让你面试不慌心不跳,高薪offer怀里抱!这次整理的面试题,本份面试集锦涵盖了1、什么是运维?2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?3、现在给你三百台服务器,你怎么对他们进行管理?4、简述raid0 raid1raid5二种工作模式的工作原理及特点5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择? 阅读详情

相关推荐

Hadoop海量文本处理2

Hadoop海量文本处理2

将两个文件a.txt和b.txt中的数据集成在一起,合并后的数据保存在c.txt中。

import pandas as pd dataa = pd.read_csv('a.txt') datab = pd.read_csv('b.txt') dataab = pd.merge(dataa,datab,how='left') dataab.to_csv('c.txt',index=False)

欢迎光临雨落星辰的博客 1476

hadoop处理海小文件的改进方法

hadoop处理海小文件的一种改进方法的文章,可供参考。

linux shell中常见文本处理:去重(uniq)、文本截取(cut)、文本转换(tr)、文本合并(paste)、文件分割(split)

1、文本去重 uniq usage: uniq [-ic] -i 忽略大小写 -c 计算重复行数 $ cat aa.txt bb 3 aa 2 bb 3 bb 3 aa 2 $ cat aa.txt | sort -t" " -k 2| uniq -ic 2 aa 2 3 bb 3 2、使用 cut 截取文本 usage: usage: cut -b lis...

Mr.Sugarcane 1040

Hadoop海量文本处理1

Hadoop海量文本处理1

读取D盘目录下ip.txt中的ip

判断D盘目录下是否存在IP.TXT,若不存在就新建一个IP.TXT,若存在则读取IP,有添加IP功能。

linux - 批量处理文件 之 两文件内容交差并集 & a文件剔除b文件内容 & 找出重复内容

1、交集:找出 A.txt和 B.txt重复的内容: cat A.txt B.txt|sort-n|uniq-d>same.txt 2、差集:A.txt去掉same.txt的内容: cat A.txtsame.txt|sort-n|uniq-u>new.txt 3.并集:汇总两文件内容 cat a.txt b.txt | sort -u > new.txt ...

开码河粉 662

高级大数据工程师面试题库

里面涵盖多种大数据面试题。供进行大数据面试的同学和进行相关学习的同学参考。

一道面试题考验Linux命令

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34023863的博客 322

智能驾驶域控(ADCU)方案介绍

本文主要对智能驾驶域控(ADCU)方案相关知识进行总结,以加深理解,及方便后续查漏补缺。

liuxu324的博客 1578

C# 操作Excel的时候,出现"被呼叫方拒绝接受呼叫的异常"的解决方案(参考官方给出的解决方案)

首先官方有对这个错误给出解释和解决方案,连接如下: https://docs.microsoft.com/zh-cn/previous-versions/ms228772(v=vs.120)#%E5%8F%AF%E9%9D%A0%E7%BC%96%E7%A8%8B 简单来说,貌似是线程问题,我猜。。。 之前我尝试着在代码中添加 Thread.Sleep(1000); 来进行解决,这种办...

Ck_Max的博客 5771

从Linux命令到Hadoop集群:运维工程师的实战成长路径

Linux操作系统是构建现代分布式计算系统的基石,其命令行工具提供了对系统资源的精细控制能力。理解Linux进程管理、网络配置和文件系统等核心原理,是掌握复杂软件部署与运维的关键。这些基础技术支撑了大数据处理框架的稳定运行,尤其在Hadoop这类分布式系统的搭建、调试与性能优化中不可或缺。通过将Linux命令思维应用于实际场景,例如使用`ssh`配置集群免密通信、利用`jps`和`grep`进行进程监控与日志分析,工程师能有效解决环境配置、服务启动和故障排查等工程挑战。本文以Hadoop集群部署为具体案例,

weixin_29047919的博客 267

一文搞定学术英语写作 (斯坦福SCI论文写作课程笔记)

0.前言: 本文基于斯坦福Kristin Sainani 教授的学术论文写作公开课——SCI论文写作(Writing in the Sciences)。在此基础上进行章节顺序的重排及部分内容的删减,以方便第一次进行英语学术论文写作的同学快速上手。 时间充足和想要系统学习英文学术写作的同学,十分建议观看完整课程视频,一定会受益匪浅!课程地址如下: 课程B站地址:https://www.bilibili.com/video/BV1zv41177JQ 1.论...

Ogmx的博客 3万+

从Linux命令到Hadoop集群搭建:大数据工程师的底层技能实战

在分布式计算领域,理解底层系统原理是构建稳定大数据平台的关键。Linux作为服务器领域的核心操作系统,其命令行工具是管理硬件资源、网络配置和文件系统的基石。通过掌握系统探查、权限管理和进程控制等命令,工程师能够为上层应用提供可靠的运行环境。Hadoop作为经典的分布式存储与计算框架,其价值在于能够将多台普通服务器组织成统一的计算资源池,处理海量数据。在实际应用中,从环境准备、服务部署到故障排查,都离不开对Linux命令的熟练运用。本文围绕Hadoop伪分布式环境搭建这一典型场景,深入讲解如何通过SSH免密登

weixin_29050271的博客 300

【UG/NX二次开发】记录在二次开发中遇到的坑

【UG/NX二次开发】记录在二次开发中遇到的坑

Trust_MJ的博客 2709

Emuelec系统安装全流程:超详细版指南(从零开始)

手把手带你完成emuelec系统的完整安装,从基础准备到系统配置一步不落,适合新手入门。深入解析emuelec在各类设备上的部署技巧,让复古游戏体验更流畅。

weixin_42594419的博客 1974

Linux修改hadoop配置文件及启动hadoop集群详细步骤_在linux如何进入hadoop

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

m0_60721823的博客 1190

Qwen2.5-VL多模态微调超参数深度解析(上):训练流程与优化策略的量化机制分析

上篇文章通过系统化的对比实验,回答了多模态微调中的三个基础问题:“选什么方法”(LoRA/Full/Freeze/OFT对比)、“用什么配置”(60+组超参数组合)、“达到什么效果”(ROUGE-L/BLEU-4指标)。这些结果为后续工作奠定了实验基线,但也留下了更深层的疑问:为何相同方法在不同数据集上表现迥异?为何某些超参数的微小调整会引发性能剧变?如何在未见过的任务上快速找到最优配置?本文是对前文实验数据的二次挖掘与机理解析。我们将关注点从"做了什么实验"转移到"实验揭示了什么规律",实验视角从"结果对

羊城迷鹿的博客 1007

hadoop工程师要求

岗位职责: 1、研究、开发、测试hdfs/mapreduce/hive/hbase的功能、性能和扩展; 2、对有助于提升集群处理能力/高可用性/高扩展性的各种解决方案进行跟踪和落地; 3、解决海量数据不断增长面临的挑战,解决业务需求。   任职资格: 1、熟练运用java 集合类、io、多线程、concurrent包; 2、熟悉jvm运行机制及内存管理、熟悉linux; 3、熟悉h

shuhuai007的专栏 4036

YOLOv8改进,YOLOv8主干网络替换为FasterNet(全网独发手把手教学,助力涨点)

FasterNet的整体架构由四个分层阶段组成,每个阶段包含一组FasterNet模块,并在前面加一个嵌入或合并层。最后三层用于特征分类。每个FasterNet模块内部,一个PConv层后跟两个PWConv层,为了保持特征多样性并降低延迟,归一化和激活层仅在中间层之后进行,其中,PConv 是一种快速高效的卷积操作,通过仅对部分输入通道应用卷积滤波器,而保持其余通道不变,从而减少了计算量和内存访问。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2018

C#上位机+YOLOv8实战:摄像头/视频流实时目标检测(工业级优化+完整可运行源码)

纯C#实现,无Python依赖,适配工业工控机部署;工业级优化:解决帧率、内存、鲁棒性三大核心问题;代码完整可复用,支持摄像头/视频流/RTSP多源检测;避坑指南覆盖开发中90%的常见问题,降低落地成本。相较于传统方案,该方案兼顾实时性与易用性,成本仅为商用视觉库的1/10,可快速落地到工业质检、安防、物流等场景。后续可拓展方向包括:自定义数据集训练、GPU加速推理、工业通信(PLC/串口)对接等。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 736

Hadoop集群启动命令及相关介绍

出去就用hive ,hbase 和 spark(最好学号Scala,) nc -lk 9999 (1)判断是物理机还是虚拟机 dmesg | grep -i virtual 查看系统版本号和系统位数 cat /etc/issue && arch (2)查看隐藏文件 ll -la (3)查看目录下的所有文件及大小 ll -h (4)查看该目录下的文件及文件大小 du -sh *|so...

努力奔跑的蜗牛 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux 运维工程师 必掌握的技能 ?

linux运维工程师必须掌握的技能: 1、Linux基础知识内容,和命令使用,以及用户和权限等核心知识点; 2、Linux从进程、资源、任务、文件、软件包、磁盘等管理方法; 3、安全架构、安全威胁模型、以及加密、解密等原理,常见攻击和防范手段等。 优秀的运维人员必须具备的技能: 1、Linux系统基础入门-Linux的基础知识内容,和命令使用,以及用户和权限等核心知识点 2、Linux 系统管理和进阶-Linux从进程、资源、任务、文件、软件包、磁盘等管理方法 3、Linux 企业级常用服务如DNS、FTP

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 5268

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux安装Hadoop3,2024年最新带你全面理解View的绘制流程

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?5、LVS、Nginx、HAproxy有什么区别?9、讲述一下Tomcat8005、8009、8080三个端口的含义?7、Tomcat和Resin有什么区别,工作中你怎么选择?3、现在给你三百台服务器,你怎么对他们进行管理?15、讲述一下LVS三种模式的工作过程?

658

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Linux安装Hadoop3(1),2024年最新Linux运维线程池面试题

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?5、LVS、Nginx、HAproxy有什么区别?9、讲述一下Tomcat8005、8009、8080三个端口的含义?7、Tomcat和Resin有什么区别,工作中你怎么选择?3、现在给你三百台服务器,你怎么对他们进行管理?15、讲述一下LVS三种模式的工作过程?

610
上一篇: Hive grouping sets grouping_id cube rollup
下一篇: sqoop导数据遇到的部分问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值