SparkデータフレームをRDD [行]に変換するので、最終的なスキーマにマップしてHive Orcテーブルに書き込むことができます。私は入力内の任意のスペースを実際のnull
に変換したいので、ハイブテーブルは空の文字列の代わりに実際にnull
を保存することができます。Dataframe to RDD [行]空白をヌルに置き換える
入力データフレーム(パイプ区切りの値を持つ単一の列):
col1
1|2|3||5|6|7|||...|
マイコード:
inputDF.rdd.
map { x: Row => x.get(0).asInstanceOf[String].split("\\|", -1)}.
map { x => Row (nullConverter(x(0)),nullConverter(x(1)),nullConverter(x(2)).... nullConverter(x(200)))}
def nullConverter(input: String): String = {
if (input.trim.length > 0) input.trim
else null
}
はそれをやってというよりもnullConverter
機能200回の呼び出しのいずれかのきれいな方法はあります。単一の列に基づいて
をRDDするデータフレームを変換する際に、私は1つの列のみを有し、それはパイプ区切り形式の値を有しても意味がありません。空白を値の一部としてNULLに変換したい。 – Nats
@Nats - 更新 – manojlds
ありがとうございました!それは助ける – Nats