问题标签 [scalding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 烫伤如何使用'*关键字映射所有字段?
我想对我的 Pipe 的所有字段应用一个操作。我在https://github.com/twitter/scalding/wiki/Fields-based-API-Reference上看到 “您可以使用 '*(此处和其他地方)来表示所有字段。” 但不知何故,我没有成功让它发挥作用。有人可以给我举个例子吗?
最初我有类似的东西
我现在想将其应用于所有领域,例如
?
serialization - Scalding中的读写案例类
有人可以指出一个链接,解释如何在烫伤中读写简单的案例类吗?是否有一些默认的序列化方案?
例如,我有创建 com.twitter.algebird.Moments 管道的工作。我希望将管道写入 HDFS 并使用不同的作业读取它们。
Fer示例:我尝试使用以下方式编写:
并阅读使用:
我收到以下错误:
apache-pig - 烫伤:保留 groupBy 之后的所有字段
我正在groupBy
计算一个值,但似乎当我分组时,我丢失了所有不在聚合键中的字段:
在猪中,它会是这样的:
scala - 使用 HTTP 请求作为管道
我正在摆脱Scalding的困扰,我需要从互联网上获取一些 URL。
看起来,Scala 并没有在其标准库中提供单个类来执行 HTTP 请求。
由于我见过的许多裸 Java 解决方案似乎过于冗长,我想知道我是否可以只使用 Scalding Pipe 机器来执行此操作,或者这不是它打算用于的那种任务。
还。在使用诸如Dispatch或scalaj-http之类的外部库的情况下:我可以直接将结果获取到管道还是涉及更多管道?
scala - 使用 Scalding JobTest 模拟 TSV 源
我很难为我的烫伤工作进行单元测试。
我的工作需要一个包含三个字段的文件:
我天真地期望这些字段被映射为一个 nTuple,而不需要任何进一步的设置。但从我的测试中,我了解到情况并非如此,需要建立一些进一步的合同:
目前这失败了cascading.tuple.FieldsResolverException: could not select fields: [{1}:'url'], from: [{2}:'offset', 'line']
。所以我想我需要以某种方式声明 TSV 字段,然后再将其作为 TextLine 的输入。
我发现的大多数文档在这方面都参差不齐。定义此测试的正确原因是什么?
scala - scala 文件名太长
我正在使用 scala 2.10 和 gradle 1.11
我的问题是,当我尝试在 hadoop 集群中运行时,编译的 jar 会出错。我想在 hadoop 上运行,因为我使用烫伤。
例外是:
欢迎任何意见...
map - [Scala/Scalding]:将 ID 映射到名称
我对 Scalding 相当陌生,我正在尝试编写一个将 2 个数据集作为输入的 scalding 程序:1) book_id_title: ('id,'title): 包含书 ID 和书名之间的映射,两者都是字符串。2) book_sim: ('id1, 'id2, 'sim):包含书籍对之间的相似性,由它们的ID标识。
scalding 程序的目标是通过查找 book_id_title 表将 book_ratings 中的每个 (id1, id2) 替换为它们各自的标题。但是,我无法检索标题。如果有人可以帮助使用下面的 getTitle() 函数,我将不胜感激。
我的烫伤代码如下:
谢谢
gradle - Gradle 构建的 jar 找不到我的主类
在工作中,我们在 Scalding 项目中使用 gradle,我正在尝试提出最简单的工作来摆脱堆栈。
我的班级看起来像:
和生活in playground/src/org/playground/readCsv.scala
。我的构建脚本如下所示:
这会成功编译和构建,但尝试运行 jar 会引发此错误:
我有根据的猜测是,让工作从不Job
符合某些约定并且看起来不像有效的主类,但我不希望它抱怨找不到它。
另一种可能性是运行它java -jar jarname
是不正确的,我只需要使用 hadoop 或类似的东西运行它。
无论如何,只是为了验证:我的设置有什么问题?
scala - 自定义烫伤水龙头(或 Spark 等效)
我正在尝试使用自定义文件格式转储我在 Hadoop 集群上的一些数据,通常在 HBase 中。
我想做的或多或少是以下几点:
- 从分布式记录列表开始,例如 Scalding 管道或类似的
- 通过一些计算函数对项目进行分组
- 使属于同一组的项目驻留在同一台服务器上
- 在每个组上,应用一个转换 - 涉及排序 - 并将结果写入磁盘。事实上我需要写一堆 MapFile——它们本质上是排序的 SequenceFile,加上一个索引。
我想用 Scalding 实现上述功能,但我不知道如何做最后一步。
虽然当然不能以分布式方式写入已排序的数据,但将数据拆分为块然后写入本地排序的每个块应该仍然可行。尽管如此,我还是找不到任何 MapFile 输出用于 map-reduce 作业的实现。
我认识到对非常大的数据进行排序是一个坏主意,这就是即使在单个服务器上我也计划将数据拆分成块的原因。
有没有办法用 Scalding 做类似的事情?可能我可以直接使用 Cascading,或者真正使用其他管道框架,例如 Spark。
java - 作业在没有映射器或减速器的情况下运行
我写了一份使用在本地模式下运行良好的烫伤的作业。但是当我尝试以 hdfs 模式(在同一个文件上)执行它时,它什么也没做。更准确地说,第一步没有任务(映射器或减速器),之后的步骤显然什么都不做。
我尝试 grepping 日志中的异常并将我的代码包装在 try-catch 中(在烫伤作业定义在构造函数中,我还包装了 run 方法)。
也许由于某种原因级联决定忽略输入文件?这是一个 Avro 放气文件。
更新:挖掘更多,我可以看到这一行:
在作业 xml 中,mapred.input.dir 属性设置为我的文件的路径。
看起来 JobInProgress 正在从作业 xml 文件中不存在的 mapred.job.split.file 获取其信息