nullableではないデータフレームにStructFieldがあります。簡単な例:Sparkデータフレーム内のカラムのNULL可能性を変更できますか?
import pyspark.sql.functions as F
from pyspark.sql.types import *
l = [('Alice', 1)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df = df.withColumn('foo', F.when(df['name'].isNull(),False).otherwise(True))
df.schema.fields
返す:フィールドfoo
がNULL可能ではないことを
[StructField(name,StringType,true), StructField(age,LongType,true), StructField(foo,BooleanType,false)]
お知らせ。問題は、(私が入ってこない理由のために)私はそれがnullableになりたいということです。私はまた、スタックトレースでこれを見
TypeError: StructField(name,StringType,true) is not JSON serializable
::で失敗しました
import pyspark.sql.functions as F
from pyspark.sql.types import *
l = [('Alice', 1)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df = df.withColumn('foo', F.when(df['name'].isNull(),False).otherwise(True))
df.schema.fields
newSchema = [StructField('name',StringType(),True), StructField('age',LongType(),True),StructField('foo',BooleanType(),False)]
df2 = sqlContext.createDataFrame(df.rdd, newSchema)
:私はそれを行う方法を提案し、このポストはChange nullable property of column in spark dataframeので、私はこれに、その中にコードを適応した
raise ValueError("Circular reference detected")
私はちょっと立ち往生しています。誰でもこの例を変更して、カラムfoo
がnullableのデータフレームを定義できるようにすることはできますか?
よく恥ずかしいです。ありがとうRudra :) – jamiet