大数据分析为什么要学习命令行
2020-10-13
点击量:次大数据分析为什么要学习命令行?在与大数据分析紧密联系的计算机科学领域,即使对于数据分析师或大数据分析家来说,像开发人员一样控制您的计算机也是非常宝贵的资产。Unix命令行界面(CLI;您还将看到它称为终端或bash,shell等),它使我们能够执行更多操作。
从图形用户界面(GUI)切换到CLI可能会让人感到不知所措,但是我们在这里为您提供帮助!
为了让您快速入门,以下是一些您应该学习命令行的原因。
1.命令行技能很受欢迎,薪酬丰厚
根据2019年Stack Overflow的开发人员调查,bash / shell(即Linux命令语言解释器家族)是使用量排名第六的语言,排在Python和R之前。它的薪水也 比Python或R高进行调查。
它在最受欢迎的技术列表中排名最高(59.5%),在最受关注的技术列表中排名较低(40%)。
尽管StackOverflow的调查涵盖了各种软件开发人员和工程师,但命令行对大数据分析家而言尤其重要,因为 Bash / Shell与 Python,IPython / Jupyter,TensorFlow和PyTorch等大数据分析技术有着密切的联系。Python Software Foundation 进行的最新Python开发人员调查也支持这一点 。
2.命令行技能帮助构建可重复数据过程
大数据分析家的职责之一是确保经常(每天)定期获取某些信息。大多数情况下,以相同的方式获取,处理和显示此数据。
命令行非常适合此目的,因为命令易于自动化和复制。
请考虑以下情况:
您的雇主决定投资于数据分析。几位数据专业人员将加入该团队。您的任务是确保他们的机器具备启动所需的一切。
如果可以使用CLI(命令语言解释器),则可以编写一些脚本来自动安装,配置和测试所有内容。
如果不能,那么您将不得不求助于GUI并使用相同的鼠标并多次在多台计算机上单击移动。
这只是终端技能如何帮助使大数据分析流程更具可扩展性和可重复性的一个示例。
3.命令行技能使您更灵活
在大数据分析领域,您经常会发现,如果可以使用终端而不用依赖于单击GUI,则可以拥有更大的灵活性。
由于命令行是运行其他程序的程序(因此称为“ shell”),因此程序之间的交互通常更容易在命令行中进行调整。
一旦掌握了命令行命令,编写脚本就相对容易了,而Shell脚本使构建各种数据管道和工作流变得更加简单。
更广泛地讲,了解如何使用外壳为您提供了与计算机交互的第二种选择。
您随时可以根据需要使用GUI,但是在需要的时候,命令行可以为您提供更直接的功能和控制。
4.使用文本文件更容易
文本文件是存储和处理数据的最常用方法之一,几乎任何大数据分析项目都将涉及文本文件的某些工作。因此,对于大数据分析家来说,能够快速有效地处理文本文件是一项非常有用的技能。
该外壳程序具有非常强大的文本处理工具,例如 AWK 和 sed,可帮助您熟悉文件并便于数据清理。
例如,以下代码使用AWK来打印名为的文件的第一和第三列 a_csv_file,其中第二个字段的值为 AAA教育,并使用逗号作为字段分隔符。
只需要一行代码!
5.资源消耗少
当您使用有限的计算资源或仅想最大化速度时,使用命令行实际上总是比使用GUI更好,因为使用GUI意味着资源必须专用于呈现图形输出。
对于本地和远程工作都是如此。当进行远程连接时,GUI消耗的带宽要比终端消耗的带宽大得多。
此外,使用GUI时,潜伏期(即“刺激和响应之间的时间间隔”)会更长,如果您要控制的鼠标落后于实际动作一两秒,这会特别令人沮丧。
如果您只是在命令行中键入内容,则延迟可能会降低,并且也将更易于处理,因为您可以准确地知道任意给定时间的光标位置。
6.您需要云的命令行技能
云服务通常连接到命令行界面并通过命令行界面进行操作。
对于深度学习等更高级的大数据分析工作而言,这尤其重要,在该工作中,本地计算资源可能不足以完成您想执行的任务。要引用这个 2018文章Nucleus研究公司:
在去年的研究中,少于10%的[深度学习]项目是在内部运行的。这种趋势正在加速,2018年只有4%的项目在内部运行。
根据同一篇文章,“当今96%的深度学习都在云中运行。”
如果您对学习深度学习等高级技术感兴趣,则必须具备命令行技能才能有效地将数据移入或移出云。
7. Unix Shell技能可以很好地移植到其他Shell
仅有一些流行的shell(bash,zsh,fish,ksh,tcsh,cmd,Windows PowerShell等),它们相似之处多于不同之处,因此可以轻松地在它们之间进行切换。
当您使用需要某种CLI的在线服务时,此功能特别有用。另一方面,GUI层出不穷,学习一个GUI并不一定能帮助您学习其他GUI。
8.您键入的速度可能比单击速度快
研究 表明,鼠标的使用很快就达到了平稳状态,而键盘的使用尽管学习曲线陡峭,但效率更高。
为251位Microsoft Word的有经验的用户提供了一份问卷,以评估他们对最常见命令的方法选择。与我们的期望相反,大多数有经验的用户很少使用高效的键盘快捷键,而倾向于使用图标工具栏。
进行了第二项研究,以验证键盘快捷键确实是最有效的方法。六名参与者使用菜单选择,图标工具栏和键盘快捷键执行了常见命令。键盘快捷键是最有效的。
换句话说:即使您觉得自己正在通过GUI快速工作,也很有可能至少对于某些任务,在命令行中会更有效率。
9.审核和调试更容易
由于在命令行上跟踪所有活动非常容易,因此审核和调试要容易得多。
您可以轻松地查看日志以跟踪您在外壳程序中执行的每个操作,而如果在使用GUI时单击不正确会导致错误,则可能没有任何记录。
10. Unix Shell随处可用
尽管它仅内置在Mac和Linux计算机上,但Windows用户仍然可以通过WSL, Cygwin 和 MinGW之类的工具来享受乐趣。
这意味着您在这些课程中学习的命令行技能几乎可以在您遇到的每台计算机上使用(包括您的个人计算机,无论使用哪种操作系统)。
11.命令行比您想象的要简单
有一个误解,认为使用命令行需要您知道数百条命令。实际上,尽管有数百种命令可供使用 ,但您可能仅需要这些命令中的一小部分即可完成大多数常见的大数据分析任务。
还是不服气? 我们将为您提供一本伟大的(并且免费的)Linux命令行书的报价 :
当要求我解释Windows和Linux之间的区别时,我经常使用玩具比喻。
Windows就像一个游戏男孩。您去商店买了一个盒子里所有闪亮的新东西。您将它带回家,打开它,然后使用它。漂亮的图形,可爱的声音。但是,过了一会儿,您会厌倦了随之而来的游戏,因此您回到商店购买了另一款游戏。这个循环不断重复。
最后,您回到商店,对柜台后面的人说:“我想要一款能做到这一点的游戏!” 只是被告知没有这种游戏,因为没有“市场需求”。然后你说:“但是我只需要改变这一件事!” 柜台后面的人说你不能改变它。游戏全部密封在弹药筒中。您会发现您的玩具仅限于其他人认为您需要的游戏。
另一方面,Linux就像世界上最大的Erector Set。您打开它,它只是大量零件的集合。有许多钢制支柱,螺钉,螺母,齿轮,皮带轮,马达,以及一些有关建造内容的建议。因此,您开始使用它。您建立一个建议,然后另一个。
一段时间后,您会发现自己对制作方法有自己的想法。您不必再去商店,因为您已经拥有了所需的一切。Erector Set发挥您的想象力。它可以满足您的需求。当然,您选择的玩具是个人的事情,那么您会觉得哪种玩具更令人满意?
想学习命令行吗?
现在,我们已经说服您学习了命令行,请单击此处以查看我们的入门命令行课程,这是最近经过重做的两门课程之一,它们深入介绍了Python中的Data Analyst 和 Python路径中的Data Scientist:
1)命令行元素
2)命令行中的文本处理