Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在比较RDDpipeline的int值时,会同时得到int和none值?_Python_Apache Spark_Rdd_Nonetype - Fatal编程技术网

Python 为什么在比较RDDpipeline的int值时,会同时得到int和none值?

Python 为什么在比较RDDpipeline的int值时,会同时得到int和none值?,python,apache-spark,rdd,nonetype,Python,Apache Spark,Rdd,Nonetype,我有一个csv文件,其中包含值为1和0的字段。使用pyspark,我只想捕获特定字段中带有1的值。当我转换字段时,我将它们转换为int。当我使用if语句检查值是否为1时,它会返回大量None和一些1。为什么我会有这个问题?我100%确定我的csv文件只包含值1和0 def vehA(line): fields = line.split(",") ddsA = int(fields[28]) ddsB = int(fields[52]) if ddsA == 1:

我有一个csv文件,其中包含值为
1
0
的字段。使用pyspark,我只想捕获特定字段中带有
1
的值。当我转换字段时,我将它们转换为
int
。当我使用
if
语句检查值是否为
1
时,它会返回大量
None
和一些
1
。为什么我会有这个问题?我100%确定我的csv文件只包含值
1
0

def vehA(line):
  fields = line.split(",")
  ddsA = int(fields[28]) 
  ddsB = int(fields[52]) 

  if ddsA == 1:
     return ddsA

rdd = lines.map(vehA)
rdd.collect()
输出:

1
1
1
1
1
1
1
None
None
None
None
1
1
1
1
1
1
None
None
...
我甚至尝试过这个,但仍然得到相同的输出:

    if ddsA is not None:
        if ddsA == 1 and ddsA is not None:
          return ddsA

ddsA
不等于
1
时,您的方法
vehA
返回
None
,因为在
else
的情况下,python隐式返回
None


为了仅捕获带有一个的
ddsA
,您可以使用过滤器而不是映射

ddsA
不等于
1
时,您的方法
vehA
返回
None
,因为在
else
的情况下,python隐式返回
None

为了仅捕获带有一个的
ddsA
,您可以使用过滤器而不是映射