我在Hadoop / Spark框架的顶部使用Scala。
实际上我的数据是这种类型的:
RDD[(List[(String, Int)], Long)]
并且,这是此数据记录中前两行的示例:
(List(("COD_LOCALE_PROGETTO",0), ("CUP",1), ("OC_TITOLO_PROGETTO",2), ("OC_SINTESI_PROGETTO",3), ("OC_LINK",4), ("OC_COD_CICLO",5), ("OC_DESCR_CICLO",6), ("OC_COD_TEMA_SINTETICO",7), ("OC_TEMA_SINTETICO",8), ("COD_GRANDE_PROGETTO",9), ("DESCRIZIONE_GRANDE_PROGETTO",10)),0)
(List(("10CAPORTO-POZZUOLI 1",0), ("J86G08000450003",1), ("INTERVENTO C11 2° LOTTO ¿ 1° STRALCIO FUNZIONALE ¿COLLEGAMENTO TRA TANGENZIALE DI NAPOLI (VIA CAMPANA), RETE VIARIA COSTIERA E PORTO DI POZZUOLI""",2), ("INTERVENTO C11 2° LOTTO ¿ 1° STRALCIO FUNZIONALE ¿COLLEGAMENTO TRA TANGENZIALE DI NAPOLI (VIA CAMPANA), RETE VIARIA COSTIERA E PORTO DI POZZUOLI""",3), ("www.opencoesione.gov.it/progetti/10caporto-pozzuoli-1",4), (1,5), ("Ciclo di programmazione 2007-2013",6), ("07",7), ("Trasporti e infrastrutture a rete",8), (" ",9), (" ",10)),1)
在实际情况下,每行有194列,我总共有160多万条记录。
有了这个数据集,我想填充一个新的列表,类型为:
List[(String, Int, Int, Int)]
其中,第一个“Int”是每行的每个字段(COD_LOCALE_PROGETTO、CUP…),第二个字段是每个字段的大小(19、3、…);第三个字段是已经编码在变量中的每个字段的位置,就在字符串之后;最后一个“Int”是整个数据集中每行的位置。
我尝试了这个脚本:
| val Dimensione = item._1.size;
| for(i <- 0 until Dimensione){
| ComponentiOpenCoesione :+= (item._1(i)._1.replace("\"","").toString,
| item._1(i)._1.replace("\"","").toString.size,
| item._1(i)._2.toInt,
| item._2.toLong)}
| })
但它失败了,我称之为“ComponentiOpenCoesione”的元组列表没有填充。
最后,这个变量是这样定义的:
var ComponentiOpenCoesione : List[(String, Int, Int, Long)] = List();
有人能帮我吗?如何从RDD中提取数据并加载到列表中?
非常感谢。
在 scala 中,返回函数的最后一个语句。在这里,您的函数将不返回任何内容,因为它的最后一个语句是不返回任何内容的 for
循环。
要纠正它,您只需将ComponentiOpenCoesione
作为您的最后一句话。所以,如果你只是打算映射你的RDD[(List[(String,
Int)], Long)]来获取RDD[List[(String, Int, Int, Long)]],
你的代码应该是:
rdd.map(item => {
var ComponentiOpenCoesione: List[(String, Int, Int, Long)] = List();
val Dimensione = item._1.size;
for (i <- 0 until Dimensione) {
ComponentiOpenCoesione :+= (item._1(i)._1.replace("\"", "").toString,
item._1(i)._1.replace("\"", "").toString.size,
item._1(i)._2.toInt,
item._2.toLong)
}
ComponentiOpenCoesione
})
您可以查看Scala中的Return问题的答案,了解如何在Scala中返回值。
问题内容: 我创建了一个GUI,并在外部获取了一个数据库。我正在NetBeans中使用GUI构建器来执行此操作。有谁知道用来自数据库的值填充jComboBox的简单方法吗?当我运行项目时,没有错误,但组合框保持为空。 这是设置带有折扣名称的组合框的代码: 它位于与jComboBox对象不同的类中。此类称为模型。 这是我以称为DiscountGUIView的形式调用setDiscountNames方
我有一个图像的数据在字节数组中()。我想获取它的元数据,例如: null 我怎么能这么做?如果有图书馆需要我了解,请告诉我。 我发现从JPEG中获取字节数组形式的元数据,但它说它与JPEG图像相关。我想对所有图像都这样做。而且,它也没有解释它是如何工作的。
我有以下数据结构: 我想把它取出来。以下是我在没有任何运气的情况下正在做的事情: 那我该怎么做? P、 实际上,那是https://github.com/json4s/json4s但这并不重要,因为lift在json提取方面有相同的API。 更新:可能需要使用转换方法。我将如何使用它? 更新2:
series(string $value,[ string $categories]) string $value $config = ['path' => './tests']; $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); $
factory 辅助函数 必须 使用 factory 方法来做数据填充,因为是框架提倡的,并且可以同时为测试代码服务。 运行效率 开发数据填充时,必须 特别注意 php artisan db:seed 的运行效率,否则随着项目的代码量越来越大,db:seed 的运行时间会变得越来越长,有些项目多达几分钟甚至几十分钟。 原则是: Keep it lighting speed. 只有当 db:seed
我在NetBeans IDE中工作,语言是Java,主要的类是JFrame Form。 我需要从Jtable获取所有数据并用这些数据填充数组。数组代表矩阵。 代码如下 我有一个错误 线程“AWT-EventQueue-0”java.lang.ClassCastException:java.lang.String无法转换为java.lang.Double 所以将表中的元素设置为双精度不是那么容易吗?