私はこのような2つの列を持つデータフレームdfを持っています。このことから列内の別の列に文字列を作る方法
+-----+------------------+
|x | y |
+-----+------------------+
|0.0 |{12,16,17,18,19} |
|0.0 |{18,16,17,18,19} |
|0.0 |{15,16,67,18,19} |
|0.0 |{65,16,17,18,19} |
|0.0 |{9,16,17,18,19} |
|1.0 |{12,16,17,28,39} |
|0.0 |{24,16,17,28,19} |
|0.0 |{90,16,17,18,29} |
|1.0 |{30,16,17,18,19} |
|1.0 |{28,16,17,18,19} |
+-----+------------------+
私は列が文字列型
ある。しかし、それはyの列に同じことを印刷している両
println(df .withColumn("y", df("y".replace("{", "").replace("}","").split(",")(0))).show)
で試してみました
+---+---+
|x |y |
+---+---+
|0 |12 |
|0 |18 |
|0 |15 |
|0 |65 |
|0 |9 |
|1 |12 |
|0 |24 |
|0 |90 |
|1 |30 |
|1 |28 |
+---+---+
のようなものを望んでいました 何か助けていただければ幸いです。
をうん、 – Ricky
@Daniel・デ・パウラwell.thanksを働いたと一緒に使用するために 'COLUMN'タイプを受け入れるUDFを作成し、通常の関数を作成する間のパフォーマンスの面で違いがあります'.withColumn()'? – vdep
@vdep UDFはSparkの「ブラックボックス」であるため、UDFを定義する前に常に組み込み関数を使用するようにしてください。最適化する。 [ここにリンクがあります](https://jaceklaskowski.gitbooks.io/mastering-apache-spark-2/spark-sql-udfs.html)。 –