2017-10-16 93 views
-2

我有一个数组:Array [(String,(Array [String],Int))] 我需要提取: 第一个元素 最后一个元素;和从3个记录内阵列[字符串]Scala从数组和嵌套数组中提取值

数据的第三和第四元件的元件:我想只显示加粗项

阵列((,(阵列(27120, 2011-12-01 09:59:17.0,2013年9月7日08:29:37.0,戴尔汉森,2578英格拉姆路,英格尔伍德,CA, 90309),)), ( (Ar 2 O 3)射线(92694,2013年1月25日04:11:10.0,2013年12月4日02:31:35.0,斯泰西Allbritton,4990 Clearview的驱动器, 萨克拉门托,CA,94215),) ) (,(阵列(40581,2012-04-03 17:53:32.0,二○一三年十二月十日22:46:16.0,诺曼斯坎隆,312奥卡拉街,萨克拉门托,CA, 95761),)) )

数据应该是这样的:

27120 8 Dale Hanson 
92694 2 Stacy Allbritton 
40581 2 Norman Scanlon 

谢谢!

+0

你尝试过什么?你有什么问题? –

+0

只需将该元组数组存储在变量中,例如。 val userData。 userData.foreach(entry => {println(entry._1 +“”+ entry._2._2 +“”+ entry._2._1(3)+“”+ entry._2._1(4)) }) –

+0

谢谢!这很棒。我现在明白如何索引元组... – Rachel

回答

1

如果以格式Array[(Int, (Array[String], Int))]格式输入数据,则必须映射数组并提取所需的信息。

你的数据结构看起来像

Tuple(integer, Tuple(Array, integer))) 
     |  |  |  | 
     |  |  |  | 
     _1  _2  |  | 
        _2._1 _2._2 

例如,

scala> val data = Array((27120,(Array("27120", "2011-12-01 09:59:17.0", "2013-09-07 08:29:37.0", "Dale, Hanson", "2578 Ingram Road, Inglewood, CA, 90309"),8)), 
(92694,(Array("92694", "2013-01-25 04:11:10.0", "2013-12-04 02:31:35.0", "Stacy, Allbritton", "4990 Clearview Drive, Sacramento, CA, 94215"),2)), 
(40581,(Array("40581", "2012-04-03 17:53:32.0", "2013-12-10 22:46:16.0", "Norman, Scanlon", "312 Ocala Street, Sacramento, CA, 95761"),2))) 
data: Array[(Int, (Array[String], Int))] = Array((27120,(Array(27120, 2011-12-01 09:59:17.0, 2013-09-07 08:29:37.0, Dale, Hanson, 2578 Ingram Road, Inglewood, CA, 90309),8)), (92694,(Array(92694, 2013-01-25 04:11:10.0, 2013-12-04 02:31:35.0, Stacy, Allbritton, 4990 Clearview Drive, Sacramento, CA, 94215),2)), (40581,(Array(40581, 2012-04-03 17:53:32.0, 2013-12-10 22:46:16.0, Norman, Scanlon, 312 Ocala Street, Sacramento, CA, 95761),2))) 

scala> data.map(tuple => (tuple._1, tuple._2._2, tuple._2._1(3))) 
res20: Array[(Int, Int, String)] = Array((27120,8,Dale, Hanson), (92694,2,Stacy, Allbritton), (40581,2,Norman, Scanlon))