Fournir des données échantillon, qui peut être facilement recréé.
À tout le moins, les affiches doivent permettre à un couple de lignes et de colonnes sur leurs dataframe et le code qui peut être utilisé pour créer facilement il. Par facile, je veux dire couper et coller. Rendre aussi petite que possible afin de démontrer votre problème.
J'ai le texte suivant dataframe:
+-----+---+-----+----------+
|index| X|label| date|
+-----+---+-----+----------+
| 1| 1| A|2017-01-01|
| 2| 3| B|2017-01-02|
| 3| 5| A|2017-01-03|
| 4| 7| B|2017-01-04|
+-----+---+-----+----------+
qui peut être créé avec ce code:
df = sqlCtx.createDataFrame(
[
(1, 1, 'A', '2017-01-01'),
(2, 3, 'B', '2017-01-02'),
(3, 5, 'A', '2017-01-03'),
(4, 7, 'B', '2017-01-04')
],
('index', 'X', 'label', 'date')
)
Montrer la sortie souhaitée.
Posez votre question et nous montrer votre sortie désirée.
Comment puis-je créer une nouvelle colonne 'is_divisible'
qui a de la valeur 'yes'
si le jour du mois de l' 'date'
plus de 7 jours est divisible par la valeur dans la colonne'X'
, et 'no'
autrement?
Sortie désirée:
+-----+---+-----+----------+------------+
|index| X|label| date|is_divisible|
+-----+---+-----+----------+------------+
| 1| 1| A|2017-01-01| yes|
| 2| 3| B|2017-01-02| yes|
| 3| 5| A|2017-01-03| yes|
| 4| 7| B|2017-01-04| no|
+-----+---+-----+----------+------------+
Expliquer comment obtenir votre sortie.
Expliquer, en détail, comment vous obtenez votre sortie désirée. Il permet de montrer un exemple de calcul.
Par exemple, dans la ligne 1, X = 1 et la date = 2017-01-01. L'ajout de 7 jours à date de rendements 2017-01-08. Le jour du mois est de 8 et, depuis le 8 est divisible par 1, la réponse est "oui".
De même, pour la dernière ligne X = 7 et la date = 2017-01-04. L'ajout de 7 à la date des rendements de 11, le jour du mois. Depuis 11 % 7 n'est pas 0, la réponse est "non".
Partagez vos code existant.
Montrez-nous ce que vous avez fait ou essayé, y compris tous les* du code, même si elle ne fonctionne pas. Dites-nous où vous êtes coincé et si vous recevez un message d'erreur, veuillez inclure le message d'erreur.
(*Vous pouvez laisser le code pour créer l'étincelle contexte, mais vous devez inclure toutes les importations.)
Je sais comment faire pour ajouter une nouvelle colonne, c'est - date
plus de 7 jours, mais je vais avoir du mal à obtenir le jour du mois sous forme de nombre entier.
from pyspark.sql import functions as f
df.withColumn("next_week", f.date_add("date", 7))
Inclure les versions, les importations, et d'utiliser la coloration syntaxique
Pour le réglage des performances des postes, inclure le plan d'exécution
L'analyse de l'étincelle fichiers de sortie
-
MaxU utiles code dans cette réponse pour aider à analyser l'Étincelle fichiers de sortie dans un DataFrame.
D'autres notes.