0
パンダの背景から来て、私は簡単な操作でスパーク2.0.2(PySpark)と苦労しています。既存のデータフレームに新しい列を追加する方法。既存の列の最初の2文字が含まれます。理想的には、私が本質的に望むものは、明らかにSpark 2.0.2が理解できない明らかにSpark 2.0.2が理解できない、Spark 2.0.2データフレーム - 新しい列を追加する方法は、既存の列の最初の2文字で構成されていますか?
df.withColumn("new_column", col('FirstName')[:2])
です。
データソース
df = sqlContext.createDataFrame([("Ranjeet", 4, "California", 2), ("Anthony", 5, "Hawaii", 3), ("Diana", 6, "Singapore", 4)], ["FirstName", "Sales", "State", "Cost"])
df.show()
試み#1
from pyspark.sql.functions import col
df.withColumn("new_column", col('FirstName').map(lambda x: x[0][:2]))
エラー:Columnオブジェクトは、呼び出すことはできません
Attemp#2 - 姓の最初の2つの文字を含む新しいデータフレームを作成し、どのように私はそれをdfにマージするのですか?
from pyspark.sql import Row
row = Row("block_x")
df.select('FirstName').rdd.map(lambda x: x[0][:2]).map(row).toDF().show()
ありがとうございます。
シンプルで洗練されたソリューションをお探しですか?私はここで何かを逃しているかもしれません。