testPassengerId = test.select('PassengerId').map(lambda x: x.PassengerId)
我想选择PassengerId 列并对其进行RDD。但是 .select 不起作用。它说'RDD'对象没有属性'select'
testPassengerId = test.select('PassengerId').map(lambda x: x.PassengerId)
我想选择PassengerId 列并对其进行RDD。但是 .select 不起作用。它说'RDD'对象没有属性'select'
您可以尝试以下方法,
testPassengerID = test.select('PassengerID').rdd
这将选择列PassengerID并将其转换为rdd
'RDD' object has no attribute 'select'
这意味着它test实际上是一个 RDD 而不是一个数据帧(你假设它是)。您可以将其转换为数据框,然后在 RDD 上应用select或执行操作。map
如果您需要任何帮助,请告诉我。
假设您有一个 RDD,其中每一行的格式为(passenger_ID, passenger_name),您可以这样做rdd.map(lambda x: x[0])。这是一个基本的RDD
如果您使用 Spark sqlcontext,则可以按列名选择函数。
如果您的 RDD 恰好是字典的形式,那么使用 PySpark 可以这样做:
在此处定义要保留的字段:
field_list =[]
创建一个函数以将特定键保留在 dict 输入中
def f(x):
d = {}
for k in x:
if k in field_list:
d[k] = x[k]
return d
然后映射,x 是 RDD 行
rdd_subset = rdd.map(lambda x: f(x))