ich derzeit Funken und Scala bin mit 2.11.8Array of String Array von Struct in Scala + Spark-
Ich habe folgendes Schema:
root
|-- partnumber: string (nullable = true)
|-- brandlabel: string (nullable = true)
|-- availabledate: string (nullable = true)
|-- descriptions: array (nullable = true)
|-- |-- element: string (containsNull = true)
Ich versuche UDF zu verwenden, um es zu konvertieren auf die folgenden:
root
|-- partnumber: string (nullable = true)
|-- brandlabel: string (nullable = true)
|-- availabledate: string (nullable = true)
|-- description: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- value: string (nullable = true)
| | |-- code: string (nullable = true)
| | |-- cost: int(nullable = true)
Daten So Quelle sieht wie folgt aus:
[WrappedArray(a abc 100,b abc 300)]
[WrappedArray(c abc 400)]
Ich muss "" (Leerzeichen) als Trennzeichen verwenden, weiß aber nicht, wie man das in scala macht.
def convert(product: Seq[String]): Seq[Row] = {
??/
}
Ich bin ziemlich neu in Scala, kann mir also jemand helfen, wie man diese Art von Funktion erstellt?
Danke.
Danke für Ihre schnelle Antwort. Ich versuche, Ihren Vorschlag zu implementieren, aber es sagt, dass "nicht aufgelöst werden kann". Sollte ich eine andere Methode verwenden? – SuWon
[String.split] (http://www.scala-lang.org/api/2.12.x/scala/collection/immutable/StringOps.html#split (Trennzeichen: Char): Array [String]) ist eine Methode für Saiten. Ich weiß nicht, welcher Typ in Ihren umhüllten Arrays ist. Vielleicht müssen Sie toString für jeden Wert aufrufen, um eine Zeichenfolge zu erhalten. val split = s.toString.split ("") –
Danke. Ich konnte dieses Problem mit Ihrer Hilfe lösen. – SuWon