Hi,

I am new to Scalding and I wrote a snippet of code to unify the 
representations of Country Names. (For instance, convert US, USA to US)

Here is the trait function code I wrote:


def convertCountryCode(self : Pipe, cntryPipe : Pipe) : Pipe = {
  
    val cntryMap1 = cntryPipe.project('ll, 'lll).rename('lll -> 'temp)
    
    val cntryMap2 = cntryPipe.project('ll, 'nnn).rename('nnn -> 'temp)
    
    val cntryMap3 = cntryPipe.project('ll).map('ll -> 'temp) {
                    x : String => x 
                  }

    val combinedCntryMap = cntryMap1 ++ cntryMap2 ++ cntryMap3

    self.joinWithSmaller('oldCntryCode -> 'temp, combinedCntryMap, joiner = 
new LeftJoin)       
    }



Test code 
it should "unify the country representation" in {
    Given {
      List(
        ("place1", "60201", "US"),
        ("place2", "12345", "USA"),
        ("place3", "123456", "GBR"),
        ("place4", "32145", "UGA"),
        ("place5", "31234", "840"),
        ("place6", "23013", "826"),
        ("place7", "11111", "840"),
        ("place8", "12306", "800"),
        ("place9", "77777", "UG"),
        ("place10", "88888", "826")
        
      ) withSchema ('placeName, 'zipCode, 'oldCntryCode)
    } And {
      List(
        ("United Kingdom", "GB", "GBR", "826", "44"),
        ("United States", "US", "USA", "840", "1"),
        ("Uganda", "UG", "UGA", "800", "256")
      ) withSchema ('cntryName, 'll, 'lll, 'nnn, 'dialang)  
    } When { 
      (pipe : Pipe, cntryPipe : Pipe) => pipe.convertCountryCode(cntryPipe)
    } Then {
      buffer : mutable.Buffer[(String, String)] =>
        buffer.toSet should equal (Set(
        ("place1", "60201", "US"),
        ("place2", "12345", "US"),
        ("place3", "123456", "GB"),
        ("place4", "32145", "UG"),
        ("place5", "31234", "US"),
        ("place6", "23013", "GB"),
        ("place7", "11111", "US"),
        ("place8", "12306", "UG"),
        ("place9", "77777", "UG"),
        ("place10", "88888", "GB")
      ))
    }
  }  


However, the test was failed:

*** FAILED ***

[info]   Set((place4,32145), (place3,123456), (place6,23013), 
(place2,12345), (place8,12306), (place7,11111), (place1,60201), 
(place5,31234), (place10,88888), (place9,77777)) did not equal 
Set((place1,60201,US), (place7,11111,US), (place4,32145,UG), 
(place5,31234,US), (place3,123456,GB), (place8,12306,UG), 
(place6,23013,GB), (place9,77777,UG), (place2,12345,US), 
(place10,88888,GB)) (CppPipeTransformationsTestSpec.scala:590)


I am confused about why this is failed, and I will appreciate if someone 
can give me some guidance. I really appreciate your helps!


Thank you!

-Xiaolin 

-- 
You received this message because you are subscribed to the Google Groups 
"Scalding Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to