Data Engineer
-- Gegebene Tabelle numbers mit einer Spalte num (Ganzzahlen, die sich wiederholen können). -- Schreiben Sie eine SQL-Abfrage, die die Zahlen in zwei Spalten aufteilt: -- even – gerade Zahlen (aufsteigend sortiert) -- odd – ungerade Zahlen (aufsteigend sortiert) -- Die Zahlen sollen Zeile für Zeile angeordnet werden: in der ersten Zeile – die erste gerade und die erste ungerade Zahl, -- in der zweiten Zeile – die zweite gerade und die zweite ungerade Zahl usw. -- Wenn in einer Gruppe mehr Zahlen sind als in der anderen, sollen die fehlenden Stellen NULL sein. -- Ursprüngliche Tabelle -- num -- --------- -- [phone] -- Ergebnis der Abfrage -- even | odd -- -----|----- -- 2 | 1 -- 4 | 3 -- 6 | 5 -- 8 | 7 -- 10 | 9 -- NULL | 11 -- NULL | 11
Welche magischen Methoden in Python sollten berücksichtigt werden?
Wie entspricht Ihre Erfahrung den Aufgaben: Begleitung und Analyse der Ladeprozesse, Überwachung und Erkennung von Anomalien, Tests und Implementierung von Verbesserungen in der Produktion, Second-Level-Support, Überprüfung der technischen Dokumentation?
Wozu dienen Fensterfunktionen?
Welche Einschränkung besteht bei der Verwendung von DISTINCT ON in PostgreSQL mit ORDER BY?
Du hast eine Aufgabe mit der Nummer ABC erhalten. Was ist deine Vorgehensweise in Git, wenn du mit der Arbeit beginnst?
Haben Sie schon einmal mit Dekoratoren in Python gearbeitet? Was sind sie und wo werden sie angewendet?
Was ist die Gefahr des Shuffle in Spark?
Wie haben Sie Optimierungsprobleme gelöst, wenn eine Abfrage lange dauert und einen Vollscan durchführt? Wie würden Sie an eine neue solche Aufgabe herangehen?
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
Was kannst du über SOAP API erzählen?
Hattest du Erfahrung mit Docker-Images, bei der Einrichtung einer Umgebung auf einer virtuellen Maschine?
Wann kann man die CSV-Formatfamilie verwenden?
Wie wendet man eine Funktion auf alle Zeilen oder Elemente in pandas an?
Worauf ist bei der Speicher-, Geschwindigkeits- und Genauigkeitsprüfung beim Parsen großer XMLs zu achten?
Wie genau haben Sie Parquet gelesen?
Sind Sie mit UDF (Benutzerdefinierte Funktionen) in ClickHouse vertraut, haben Sie damit gearbeitet?
Mussten Sie direkt mit Spark arbeiten? Was ist sein Nachteil?
An welchen Scala-Projekten haben Sie zuvor gearbeitet? Teilen Sie konkrete Aufgaben und Erfolge in dieser Technologie.
Wie hast du den Airflow DAG und die Jobs geschrieben – manuell oder mit Vorlagen?