Fournir un schéma lors de la lecture d'un fichier CSV en tant que fichier de données
Je suis en train de lire un fichier csv dans un dataframe. Je sais ce que le schéma de mon dataframe devrait être depuis que je sais que mon fichier csv. Aussi, je suis en utilisant étincelle csv paquet de lire le fichier. J'ai essayer de préciser le schéma ci-dessous.
val pagecount = sqlContext.read.format("csv")
.option("delimiter"," ").option("quote","")
.option("schema","project: string ,article: string ,requests: integer ,bytes_served: long")
.load("dbfs:/databricks-datasets/wikipedia-datasets/data-001/pagecounts/sample/pagecounts-20151124-170000")
Mais quand j'ai vérifier le schéma de la trame de données que j'ai créé, il semble avoir pris de son propre schéma. Suis-je en train de faire quelque chose de mal ? comment faire des étincelles pour ramasser le schéma que j'ai citées ?
> pagecount.printSchema
root
|-- _c0: string (nullable = true)
|-- _c1: string (nullable = true)
|-- _c2: string (nullable = true)
|-- _c3: string (nullable = true)
source d'informationauteur Pa1
Vous devez vous connecter pour publier un commentaire.
Essayer ci-dessous , vous n'avez pas besoin de spécifier le schéma. quand vous donnez inferSchema comme vrai, il doit prendre à partir de votre fichier csv.
si vous souhaitez spécifier manuellement le schéma , vous devez faire comme ci-dessous
Je suis en utilisant la solution fournie par Arunakiran Nulu dans mon analyse (voir le code). Malgré qu'il est en mesure d'attribuer les types appropriés pour les colonnes, toutes les valeurs renvoyées sont
null
. Auparavant, j'ai essayé de l'option.option("inferSchema", "true")
et il renvoie les valeurs correctes dans le dataframe (bien que l'autre type).Résultat
et la table est la suivante:
Voici comment vous pouvez travailler avec un schéma personnalisé, une démo complète:
$> shell code,
Scala code:
Merci pour la réponse par @Nulu, il travaille pour pyspark avec un minimum de peaufiner