AnalysisException: u"impossible de résoudre le nom des colonnes d'entrée: [ liste] dans sqlContext spark
J'ai essayé un exemple simple comme:
data = sqlContext.read.format("csv").option("header", "true").option("inferSchema", "true").load("/databricks-datasets/samples/population-vs-price/data_geo.csv")
data.cache() # Cache data for faster reuse
data = data.dropna() # drop rows with missing values
data = data.select("2014 Population estimate", "2015 median sales price").map(lambda r: LabeledPoint(r[1], [r[0]])).toDF()
Il fonctionne bien, Mais lorsque j'essaie quelque chose de très similaire comme:
data = sqlContext.read.format("csv").option("header", "true").option("inferSchema", "true").load('/mnt/%s/OnlineNewsTrainingAndValidation.csv' % MOUNT_NAME)
data.cache() # Cache data for faster reuse
data = data.dropna() # drop rows with missing values
data = data.select("timedelta", "shares").map(lambda r: LabeledPoint(r[1], [r[0]])).toDF()
display(data)
Il génère l'erreur:
AnalysisException: u"ne peut pas résoudre 'timedelta' des colonnes d'entrée: [ data_channel_is_tech,...
- cours j'ai importé LabeledPoint et LinearRegression
Ce qui pourrait être mauvais?
Même le plus simple des cas
df_cleaned = df_cleaned.select("shares")
soulève même AnalysisException (erreur).
*veuillez noter: df_cleaned.printSchema() fonctionne bien.
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé le problème: certains de la colonne les noms contiennent des espaces blancs avant le nom lui-même.
Donc
travaillé.
J'ai pu reprendre les espaces blancs à l'aide de
Maintenant, je pense à un moyen de supprimer les espaces blancs. Toute idée est très apprécié!
Parce que l'en-tête contient des espaces ou des tabulations,supprimer les espaces ou de tabulations et d'essayer
1) Mon exemple de script
2) fichier d'Entrée,ici max_seq " contient de l'espace, donc nous sommes soufflet exception
2) Supprimer l'espace après 'max_seq' colonne, puis il sera beau travail