Data Engineer
-- Датабаза табела numbers са једна колона num (целобројни бројеви, могу се понављати). -- Напишите SQL упит који дели бројеве у две колоне: -- even – парни бројеви (сортирано по расту) -- odd – непарни бројеви (сортирано по расту) -- Бројеви треба да буду распоређени редом: у првом реду – први парни и први непарни, -- у другом реду – други парни и други непарни итд. -- Ако у једној групи има више бројева него у другој, недостајућа места треба да буду NULL. -- оригинална табела -- num -- --------- -- [phone] -- резултат упита -- even | odd -- -----|----- -- 2 | 1 -- 4 | 3 -- 6 | 5 -- 8 | 7 -- 10 | 9 -- NULL | 11 -- NULL | 11
Koje magične metode Pythona treba uzeti u obzir?
Kako vaše iskustvo odgovara odgovornostima na radnom mestu: praćenje i analiza procesa učitavanja, nadzor i identifikacija anomalija, testiranje i implementacija poboljšanja u produkciji, podrška druge linije, provera tehničke dokumentacije?
Зашто су потребне функције прозора?
Koje ograničenje postoji pri korišćenju DISTINCT ON u PostgreSQL sa ORDER BY?
Dobio si zadatak sa brojem ABC. Koji je tvoj redosled akcija u Git-u kada počneš sa radom?
Да ли сте икада радили са декораторима у Python-у? Шта су они и где се користе?
Koja je opasnost od shuffle u Spark-u?
Kako ste rešavali probleme optimizacije kada zahtev traje dugo i vrši puni sken? Kako biste pristupili novom takvom zadatku?
def extract_from_s3(**kwargs): df = pd.read_csv("s3://my-bucket/data/transactions_{}.csv".format(datetime.now().strftime("%Y-%m-%d"))) kwargs["ti"].xcom_push(key="df", value=df.to_dict()) def load_to_raw_table(**kwargs): df = pd.DataFrame(kwargs["ti"].xcom_pull(task_ids="extract", key="df")) rows = [tuple(r) for r in df[["transaction_id", "user_id", "amount", "created_at"]].to_numpy()] CLICKHOUSE_CLIENT.execute( "INSERT INTO raw.transactions (transaction_id, user_id, amount, created_at) VALUES", rows ) def build_aggregate_view(): query = """ INSERT INTO datamarts.daily_revenue_per_country SELECT toDate(r.created_at) as event_date, u.country, sum(r.amount) as total_revenue FROM raw.transactions r LEFT JOIN core.userMetadata u ON r.user_id = u.UserId WHERE toDate(r.created_at) = '{}' GROUP BY event_date, u.country """.format(datetime.now().strftime("%Y-%m-%d")) CLICKHOUSE_CLIENT.execute(query) transactions_sensor = S3KeySensor( task_id="transactions_sensor", bucket_key="data/transactions_{}.csv".format(datetime.now().strftime("%Y-%m-%d")), bucket_name="my-bucket", aws_conn_id="aws_default", timeout=600, poke_interval=30, mode="poke" ) extract = PythonOperator( task_id="extract", python_callable=extract_from_s3, provide_context=True ) load = PythonOperator( task_id="load", python_callable=load_to_raw_table, provide_context=True ) aggregate = PythonOperator( task_id="aggregate", python_callable=build_aggregate_view ) transactions_sensor >> extract >> load >> aggregate
Šta možeš da kažeš o SOAP API?
Da li imaš iskustva sa Docker slikama, postavljanjem okruženja na virtuelnoj mašini?
Када се може користити породица CSV формата?
Kako primeniti funkciju na sve redove ili elemente u pandas?
Na šta treba obratiti pažnju u pogledu memorije, brzine i tačnosti prilikom parsiranja velikih XML-ova?
Kako ste tačno čitali Parquet?
Da li ste upoznati sa UDF (Funkcije koje definiše korisnik) u ClickHouse-u, da li ste radili sa njima?
Da li ste morali direktno da radite sa Spark-om? Koja je njegova mana?
Na kojim projektima u Scala ste ranije radili? Podelite konkretne zadatke i dostignuća u ovoj tehnologiji.
Kako si napisao DAG i zadatke u Airflow — ručno ili pomoću šablona?