這似乎特別發生在我將數字列乘以標量時,將DataFrame寫回HDFS,然後嘗試查看當我再次將它加載到DataFrame中時的值。例如,在pyspark shell中不會發生。pyspark:DataFrame.withColumn()有時需要以不同的名稱分配給新的DataFrame
df = df.withColumn('AMOUNT', df.AMOUNT*lit(-1))
=>不翻轉列
df_new = df.withColumn('AMOUNT', df.AMOUNT*lit(-1))
=>作品!
當我使用其他方法或UDF時,它似乎沒有表現出相同的古怪。我可以將DataFrame重新分配給自己。即使我使用不同的名稱創建了一個全新的列,但當我嘗試從HDFS中讀取它時,它並不會顯示在輸出中。
這是在紗線叢集模式下spark-submit作業的一部分。 PySpark 2.2.0。
有沒有埋沒在文檔中,我無法挖掘或可能是什麼特定於我的實例?
是在殼內?那裏很好。我通過在簇羣模式下通過spark-submit來看到它,將df寫入HDFS(parquet),然後單獨將它從HDFS加載回來。 – jastang
@jastang它是在一個Databricks筆記本;如果是這樣,你應該在帖子中相應地強調它,另外提供一個最小*可重現的例子 - 否則不能看出任何人可以如何幫助 – desertnaut