我们有一个非常标准的Spark作业,它从s3读取日志文件,然后对它们进行一些处理.非常基本的Spark东西......
val logs = sc.textFile(somePathTos3)
val mappedRows = logs.map(log => OurRowObject.parseLog(log.split("\t")))
val validRows = mappedRows.filter(log => log._1._1 != "ERROR")
...and continue processing
Run Code Online (Sandbox Code Playgroud)
在哪里OurRowObject.parseLine获取原始日志行并将其映射到某个(键,值)对(例如( (1,2,3,4), (5,6,7) ),我们可以进行处理.现在,如果parseLine遇到"问题"日志(格式错误,空白等等),它将返回一些sentinel值(例如( ("ERROR", ...), (...) ),过滤器步骤然后过滤掉.
现在,我一直试图找到的方法是在地图中简单地不包括问题行...某种方式告诉火花"嘿这是一个空/畸形的行,跳过它并且不要' t包括一对",而不是那个额外的过滤步骤.
我还没有找到办法做到这一点,并发现这个功能不存在(AFAICanFind)非常有趣.
谢谢
在IPython会话中,我通常定义自定义函数...问题是,有时我想看到这些函数的实际代码.到目前为止,我还没有找到一种方法来显示它.用?和?? 只返回"动态生成的函数.没有可用的源代码".有没有办法显示用户定义函数的源代码?
在 bash 中执行制表符补全时(例如cd dir_ <TAB>),后续点击 会Tab导致重新打印匹配选项列表,每次点击 Tab 键一次(如下图)。每一个新行都是我点击Tab一次,然后重新打印选项(和提示)。
现在,例如在 zsh 中,此行为已被禁用。在下图中,我输入了内容cd dir_,然后反复点击选项卡。根据需要,提示和可用的完成选项不会重新打印,而是保持原样,位于当前提示下方。
这对于 bash 来说是可能的吗?反复点击 Tab 时,屏幕上充满了所有选项,这非常烦人。
编辑
3 年后,我很高兴地报告我终于使用 zsh,这不再困扰我