Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.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 如何将字符串与rdd的字段名匹配_Python_Pyspark - Fatal编程技术网

Python 如何将字符串与rdd的字段名匹配

Python 如何将字符串与rdd的字段名匹配,python,pyspark,Python,Pyspark,在我的pyspark 2.0.1版本中,我需要检查特定的名称[say client]是否出现在我的rdd列名中&如果该字段client未出现在我的data fame中,则生成一条错误消息。您能建议一些类似以下语法的语法吗 field='client' field not in df.schema.fields: print('field: ', field, "is not available) 对于RDD: 对于数据帧: 它是rdd还是dataframe?实际上我使用的是pyspark da

在我的pyspark 2.0.1版本中,我需要检查特定的名称[say client]是否出现在我的rdd列名中&如果该字段client未出现在我的data fame中,则生成一条错误消息。您能建议一些类似以下语法的语法吗

field='client'
field not in df.schema.fields:
print('field: ', field, "is not available)
对于RDD:

对于数据帧:


它是rdd还是dataframe?实际上我使用的是pyspark data frame&我使用的是df.columns语句&得到的错误消息是rdd对象没有“columns”属性。所以,这意味着,不管您怎么做,df不是dataframe而是rdd,这很重要,因为rdd没有模式属性是的,我知道rdd没有模式属性。我只是想说明我需要一些类似于schema.fields方式或python术语df.columns方式的功能。如果您能为rdd和dataframe提供类似类型的函数,这将对我以后的学习有所帮助。我发现schema.fields返回此格式的字段StructFieldclient,StringType,true,我不知道如何从该格式检索客户端
spark.version
# u'2.2.0'

# make some dummy data:
rdd = sc.parallelize([[u'mailid', u'age', u'address'], [u'satya', u'23', u'Mumbai'], [u'abc', u'27', u'Goa']])  # first element is the header
header = rdd.first()
header
# [u'mailid', u'age', u'address']

field = 'client'
if field not in header:
  print('field: '+ field + " is not available")
# field: client is not available
# using the rdd defined above
# remove first line from data and use it as header:
df = rdd.filter(lambda row : row != header).toDF(header)
df.show()
# +------+---+-------+ 
# |mailid|age|address| 
# +------+---+-------+
# | satya| 23| Mumbai|
# |   abc| 27|    Goa|
# +------+---+-------+

header_df = df.schema.names
header_df
# ['mailid', 'age', 'address']

field = 'client'
if field not in header_df:
  print('field: '+ field + " is not available")
# field: client is not available