[Solved] Infinite loop when replacing concrete value by parameter name

What I think is happening here is that Spark serializes functions to send them over the wire. And that because your function (the one you’re passing to map) calls the accessor param_user_minimal_rating_count of object odbscan, the entire object odbscan will need to get serialized and sent along with it. Deserializing and then using that deserialized … Read more

[Solved] How to summarize lists in Scala?

You’re looking for the transpose method: scala> val in = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9)) in: List[List[Int]] = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9)) scala> in.transpose res0: List[List[Int]] = List(List(1, 4, 7), List(2, 5, 8), List(3, 6, 9)) scala> in.transpose.map(_.sum) res1: List[Int] = List(12, 15, 18) solved How … Read more

[Solved] SCALA PAttern matching with recursive in LIST

Your method should return an Int instead of Unit. To print elements iteratively, just insert a println underneath case head :: tail: def multiply(list: List[Int]): Int = list match { case Nil => 1 case n :: rest => println(n) n * multiply(rest) } multiply(List(1,2,3,4)) // 1 // 2 // 3 // 4 // res1: … Read more

[Solved] Convert a Map[Int, Array[(Int, Int)]] to Map[Int, Map[Int, Int]] in Scala

It is really simple: yourMap.mapValues(_.toMap) scala> :paste // Entering paste mode (ctrl-D to finish) Map( 0 -> Array((1,1), (2,1)), 1 -> Array((2,1), (3,1), (0,1)), 2 -> Array((4,1), (0,1), (1,1)), 3 -> Array((1,1)), 4 -> Array((5,1), (2,1)), 5 -> Array((4,1)) ) // Exiting paste mode, now interpreting. res0: scala.collection.immutable.Map[Int,Array[(Int, Int)]] = Map(0 -> Array((1,1), (2,1)), 5 … Read more

[Solved] flatten and flatMap in scala

Take a look at the full signature for flatten: def flatten[B](implicit asTraversable: (A) ⇒ GenTraversableOnce[B]): List[B] As you can see, flatten takes an implicit parameter. That parameter provides the rules for how to flatten the given collection types. If the compiler can’t find an implicit in scope then it can be provided explicitly. flatten can … Read more

[Solved] How to find the difference between 1st row and nth row of a dataframe based on a condition using Spark Windowing

Shown here is a PySpark solution. You can use conditional aggregation with max(when…)) to get the necessary difference of ranks with the first ‘PD’ row. After getting the difference, use a when… to null out rows with negative ranks as they all occur after the first ‘PD’ row. # necessary imports w1 = Window.partitionBy(df.id).orderBy(df.svc_dt) df … Read more

[Solved] Using `Set` Argument to Scala Code in Java

Demonstrating what the commenter said: scala> import collection.JavaConverters._ import collection.JavaConverters._ scala> val js = (1 to 10).toSet.asJava js: java.util.Set[Int] = [5, 10, 1, 6, 9, 2, 7, 3, 8, 4] scala> def f(is: collection.mutable.Set[Int]) = is.size f: (is: scala.collection.mutable.Set[Int])Int scala> def g(js: java.util.Set[Int]) = f(js.asScala) g: (js: java.util.Set[Int])Int scala> g(js) res0: Int = 10 3 … Read more

[Solved] searching for list of vowels and replacing the vowels with dot (.) in a given string in scala [closed]

Check below code. scala> val vowels= Set(‘a’,’e’,’i’,’o’,’u’) // List Of vowels oval: Seq[Char] = List(a, e, i, o, u) scala> val data = “BangaLore” // Value data: String = BangaLore scala> data.toLowerCase.map(c => if(vowels(c)) ‘.’ else c) res17: String = b.ng.l.r. 4 solved searching for list of vowels and replacing the vowels with dot (.) … Read more

[Solved] How to subtract time with current time

The time difference (in milliseconds) can be obtained using: ChronoUnit.MILLIS .between(Instant.parse(“2018-07-26T16:00:17.163Z”), Instant.now()) Instant.now() will be the current UTC time, and your input date is UTC time, which makes the diff sensible. Regardless of the current time zone, the difference will be consistent. You can change the time unit accordingly (such as ChronoUnit.HOURS). 0 solved How … Read more

[Solved] change a list column order scala

if you are looking for swapping column 3rd with 4th, split with , construct new List with swapped columns concat List to get string example, scala> val list = List(“banana,QS,1,0,0”, “apple,EE,1,2,1”, “peas,US,1,4,4”) list: List[String] = List(banana,QS,1,0,0, apple,EE,1,2,1, peas,US,1,4,4) scala> list.map(_.split(“,”)).map(elem => List(elem(0), elem(1), elem(3), elem(2), elem(4)).mkString(“,”)) res0: List[String] = List(banana,QS,0,1,0, apple,EE,2,1,1, peas,US,4,1,4) solved change a … Read more

[Solved] Spark 2.3: subtract dataframes but preserve duplicate values (Scala)

Turns out it’s easier to do df1.except(df2) and then join the results with df1 to get all the duplicates. Full code: def exceptAllCustom(df1: DataFrame, df2: DataFrame): DataFrame = { val except = df1.except(df2) val columns = df1.columns val colExpr: Column = df1(columns.head) <=> except(columns.head) val joinExpression = columns.tail.foldLeft(colExpr) { (colExpr, p) => colExpr && df1(p) … Read more