0
、私はスパークデータフレームがあるとし私が書きたい
data.show()
ID URL
1 https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed
2 https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed
3 https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed
4 https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed
5 None
をスパークデータフレームのすべての行に正規表現を適用し、同じデータフレームに新しい列として保存私は特定のシナリオのURLを解析する正規表現の操作です。このシナリオは、& qの前と次の&の前に解析することになります。私はpysparkで同じことを書きたい、
re.sub(r"\s+", " ", re.search(r'/?q=([^&]*)', data['url'][i]).group(1).replace('+', ' ')
次のようにPythonのデータフレームのためのpythonでこれを書くことができています。
私は、次のエラーを取得しています書き込み何かのように、
re.sub(r"\s+", " ", re.search(r'/?q=([^&]*)', data.select(data.url.alias("url")).collect()).group(1).replace('+', ' '))
または
re.sub(r"\s+", " ", re.search(r'/?q=([^&]*)', data.select(data['url']).collect()).group(1).replace('+', ' '))
場合は、
TypeError: expected string or buffer
一つのオプションは使用してパンダにデータを変換することです、
data.toPandas()
を入力し、操作を行います。しかし私のデータは巨大で、パンダに変換するとそれは遅くなります。私は私のようなことができスパークデータフレーム内の新しいカラムに直接これを書くことができる方法、
ID URL word
1 https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed To Be Parsed out
2 https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed To Be Parsed out
3 https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed To Be Parsed out
4 https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed To Be Parsed out
5 None None
がどのように我々はpysparkのデータフレームで新しいテーブルとして追加するためにこれを行うことができますがありますか?これはデータフレームのすべての行に適用されますか?
'withColumn'たり、あなたのデータフレームを変換するとともに、UDFを使用して調べてくださいrddにして 'map'を使ってください – David
@David私はpysparkを初めて使っています。ちょうどこれらを知るようになる。あなたが気にしない場合は、マップ機能の使用を手伝ってもらえますか? – Observer