Je ne comprends pas pourquoi la liste ne s'ajoute pas dans pyspark. Quelqu'un peut-il aider à regarder mon code?si autre instruction dans une boucle for à ajouter à une liste
import json
input_file = sc.textFile("data.json")
def extract_func(data):
c_list = []
neighborhoods = data.get('neighborhoods', None)
for n in neighborhoods:
if n == []:
c_list.append('Unknown')
else:
c_list.append(n)
return c_list
entrée de données Exemple:
{'attributes': {'Accepts Credit Cards': True,
'city': 'Edinburgh',
'name': 'Conan Doyle',
'neighborhoods': [],
'stars': 3.5,
'state': 'EDH'}}
Cet exemple d'entrée ne dispose pas d'un quartier montré, donc je veux ajouter « inconnu » à la liste. Certaines autres entrées de données ont plusieurs voisinages, donc je veux les ajouter individuellement par la boucle for.
Lorsque je cours dat = input_file.map(lambda line: json.loads(line))
suivi de dat = dat.flatMap(extract_func)
, il ne me donne pas les entrées de quartier Unknown
.
En cours de vérification pendant des heures, ne peut pas comprendre ce qui ne va pas, qu'est-ce qui me manque ici?
Pouvez-vous expliquer ce que vous entendez par « la liste n'ajoute pas »? Qu'est-ce qui est censé être ajouté à quoi? Vous appelez 'data.get()' mais les données ne sont pas définies. Qu'est-ce que 'data' est censé être? Quelle est la variable 'dat' à laquelle vous faites référence? – charlesreid1
Si 'n' est en cours d'itération sur un dict, il sera réglé sur les touches du dict, pas sur les valeurs. –
Dans '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' –