Dataframe 为什么PySpk认为零是空的?

Dataframe 为什么PySpk认为零是空的?,dataframe,pyspark,null,schema,Dataframe,Pyspark,Null,Schema,我尝试将.csv文件导入pyspark数据帧。我使用schema选项来声明数据帧的模式。这是我使用的代码 memory_schema = "ts integer, PID integer, MINFLT integer, MAJFLT integer, \ VSTEXT double, VSIZE double, RSIZE double, VGROW double, RGROW double, \ MEM double, CMD s

我尝试将.csv文件导入pyspark数据帧。我使用schema选项来声明数据帧的模式。这是我使用的代码

memory_schema = "ts integer, PID integer, MINFLT integer, MAJFLT integer, \
             VSTEXT double, VSIZE double, RSIZE double, VGROW double, RGROW double, \
             MEM double, CMD string ,attack integer,type string"

memory_df = spark.read.csv("data/*memory*.csv",  header=True, schema=memory_schema)
下面是结果模式

The schema is as shown below
root
 |-- ts: integer (nullable = true)
 |-- PID: integer (nullable = true)
 |-- MINFLT: integer (nullable = true)
 |-- MAJFLT: integer(nullable = true)
 |-- VSTEXT: double (nullable = true)
 |-- VSIZE: double (nullable = true)
 |-- RSIZE: double (nullable = true)
 |-- VGROW: double (nullable = true)
 |-- RGROW: double (nullable = true)
 |-- MEM: double (nullable = true)
 |-- CMD: string (nullable = true)
 |-- attack: integer (nullable = true)
 |-- type: string (nullable = true)
在许多列中,整数或双精度的值0被替换为null。例如,列MAJFLT将80000个值设置为零。如果我在模式中将类型声明为整数,那么所有这些都将被视为null,而在模式中将MAJFLT声明为字符串时则没有null值。 我不确定为什么值0被视为null,以及如何避免它