Les compétences en Snowpark seront de plus en plus utiles à mesure que le temps passe, et c’est pourquoi nous vous proposons un autre défi Snowpark !
Cette semaine, nous allons créer une UDF (User-Defined Function). Vous pouvez répondre au défi en SQL, en python, en java ou en scala ! Voici votre code de démarrage. Il créera une table pour vous contenant des employés et leurs dates de début.
create or replace file format frosty_csv
type = csv
skip_header = 1
field_optionally_enclosed_by = '"';
create stage w29_stage
url = 's3://frostyfridaychallenges/challenge_29/'
file_format = frosty_csv;
list @w29_stage;
create table week29 as
select t.$1::int as id,
t.$2::varchar(100) as first_name,
t.$3::varchar(100) as surname,
t.$4::varchar(250) as email,
t.$5::datetime as start_date
from @w29_stage (pattern=>'.*start_dates.*') t;
Vous devez créer une UDF qui produira une année fiscale (FY) en fonction de la date de début (start_date). La logique est que si le mois est à partir de mai, alors l’année fiscale devrait être l’année en cours + 1, sinon, l’année en cours.
Par exemple :
2022-05-13 = FY23
2022-02-11 = FY22
Une fois que vous aurez écrit votre UDF, exécutez le code suivant :
data = session.table("week29").select(
col("id"),
col("first_name"),
col("surname"),
col("email"),
col("start_date"),
fiscal_year("start_date").alias("fiscal_year")
)
data.show()
et
data.group_by("fiscal_year").agg(col("*"), "count").show()
le résultat :
Et n’oubliez pas, si vous souhaitez participer aux défis:
1. Inscrivez-vous en tant que membre de Frosty Friday. –> Vous pouvez le faire en cliquant sur la barre latérale, puis en cliquant sur ‘REGISTER‘ (notez que s’inscrire à notre liste de diffusion ne vous donne pas de compte Frosty Friday).
2. Publiez votre code sur GitHub et rendez-le accessible au public (consultez notre guide si vous ne savez pas comment faire, disponible ici)
3. Postez l’URL dans les commentaires du défi.
Si vous avez des questions techniques que vous souhaitez poser à la communauté, vous pouvez les poser ici, sur notre thread dédié.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.