-1
日付の四半期の開始日を検索しようとしています。カラムは、私が使用していますTypeError:withColumn()で複数の列を使用している場合、列は反復不可能です
df.withColumn("history_effective_quarter",add_months('history_effective_month',-(month('history_effective_month')%3)+1))
TypeError Traceback (most recent call last)
<ipython-input-259-0bb78d27d2a7> in <module>() 1
~/anaconda3/lib/python3.6/site-packages/pyspark/sql/column.py in iter(self) 248 249 def iter(self): --> 250 raise TypeError("Column is not iterable") 251 252 # string methods
TypeError: Column is not iterable
反復可能ではありません。私はそれがselectExpr()
df.selectExpr("add_months(history_effective_month,-(month(history_effective_month)%3)+1) as history_effective_qtr","history_effective_month").show(5)
output-
history_effective_qtr history_effective_month
2017-07-01 2017-06-01
2016-04-01 2016-05-01
2015-10-01 2015-09-01
2012-01-01 2012-01-01
2012-01-01 2012-01-01
を使用しますが、私は.withColumn()で同じロジックを追加するとき、私は例外TypeErrorを得る書くとき、私は期待される結果を得ます
df=selectExpr('*',"date_sub(history_effective_date," \
"dayofmonth(history_effective_date)-1) as history_effective_month")