Apache spark Pyspark:使用lambda函数和.withColumn会产生一个非类型错误,我很难理解

Apache spark Pyspark:使用lambda函数和.withColumn会产生一个非类型错误,我很难理解,apache-spark,dataframe,lambda,pyspark,nonetype,Apache Spark,Dataframe,Lambda,Pyspark,Nonetype,我有下面的代码。基本上,我试图做的是从现有列中的值生成一些新列。完成此操作后,我将带有新列的数据帧保存为集群中的表。对不起,我还是Pypark的新手 从pyspark.sql导入SQLContext sqlContext=SQLContextsc 从pyspark.sql.functions导入udf、数组 从pyspark.sql.types导入DecimalType 将numpy作为np导入 输入数学 df=sqlContext.sql'select*from db.mytable' 角度=

我有下面的代码。基本上,我试图做的是从现有列中的值生成一些新列。完成此操作后,我将带有新列的数据帧保存为集群中的表。对不起,我还是Pypark的新手

从pyspark.sql导入SQLContext sqlContext=SQLContextsc 从pyspark.sql.functions导入udf、数组 从pyspark.sql.types导入DecimalType 将numpy作为np导入 输入数学 df=sqlContext.sql'select*from db.mytable' 角度=uFlambda x,y:-10如果x==0,则其他数学值为atan2y/x*180/np.pi,小数类型为20,10 df=df。带有列'a_v_angle',angle_avarray'a_v_real','a_v_imag' df.createOrReplaceTempView'temp' sql'createtablenew_table as select*from temp' 这些操作实际上不会产生任何错误。然后,我尝试将df存储为一个表,并得到以下错误,因为这是实际执行操作时的错误:

main中的文件/usr/hdp/current/spark2 client/python/pyspark/worker.py,第171行 过程 文件/usr/hdp/current/spark2 client/python/pyspark/worker.py,第166行,正在处理中 serializer.dump\u streamfuncsplit\u索引、迭代器、输出文件 文件/usr/hdp/current/spark2 client/python/pyspark/worker.py,第103行,in func=lambda,it:mapper,it 文件,第1行,在 文件/usr/hdp/current/spark2 client/python/pyspark/worker.py,第70行,in 返回λ*a:f*a 文件,第14行,在 TypeError:/:“NoneType”和“NoneType”的操作数类型不受支持 位于org.apache.spark.api.python.PythonRunner$$anon$1.readPythonRDD.scala:193 位于org.apache.spark.api.python.PythonRunner$$anon$1.PythonRDD.scala:234
这是因为输入值为null/None。函数应检查其输入并相应地进行操作

 f x == 0  or x is None
或者只是

if not x

请发布产生错误的确切命令产生错误的命令是:sqlContext.sql'createnew_table as select*from temp'谢谢!这解决了问题!非常感谢!