В постоянном стремлении к знаниям и просвещению других, я отмечаю, что приведенное ниже утверждение rdd3 работает без сбора, но не с сбором.Я удивляюсь, почему, как будто вы можете запутаться, когда читаете, что делает коллекция.Примеры придуманы, поэтому не беспокойтесь об этом.
NP:
val rdd = sc.parallelize(List((" aaa", "x"), ("bbbb ", "y"), (" cc ", "z"), ("gggg ", " a"), (" ", "b")))
val rdd2 = rdd.map{ case (field1, field2) => ( field1.replaceAll(" ", ""), field1.trim, field1, field2) }.collect
val rdd3 = rdd2.map{ case (field1, field2, field3, field4) => (field1.replaceAll(" ", ""), if (field1.trim == "") " " else field1 , field3, field4) }
Проблема:
val rdd3 = rdd2.map{ case (field1, field2, field3, field4) => (field1.replaceAll(" ", ""), if (field1.trim == "") " " else field1 , field3, field4) }.collect
Возвращает:
notebook:7: error: missing argument list for method collect in trait TraversableLike
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `collect _` or `collect(_)(_)` instead of `collect`.
val rdd3 = rdd2.map{ case (field1, field2, field3, field4) => (field1.replaceAll(" ", ""), if (field1.trim == "") " " else field1 , field3, field4) }.collect
Трудно следовать за новичком.Как бы мне обойти это, глядя на сообщение об ошибке?