Data Engineers
Free Data Engineering Ebooks & Courses
Mostrar más📈 Análisis del canal de Telegram Data Engineers
El canal Data Engineers (@sql_engineer) en el segmento lingüístico de Inglés es un actor destacado. Actualmente la comunidad reúne a 10 900 suscriptores, ocupando la posición 17 980 en la categoría Educación y el puesto 35 495 en la región India.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 10 900 suscriptores.
Según los últimos datos del 28 agosto, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de 278, y en las últimas 24 horas de 1, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 11.27%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 3.15% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 1 227 visualizaciones. En el primer día suele acumular 343 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 7.
- Intereses temáticos: El contenido se centra en temas clave como sql, learning, analytic, engineer, link:-.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Free Data Engineering Ebooks & Courses”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 29 agosto, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Educación.
# Load the DataFrame
df = spark.read.csv("path/to/data.csv", header=True, inferSchema=True)
# Handle missing values
df_filled = df.fillna(0)
# Aggregate data
from pyspark.sql.functions import sum, col
df_aggregated = df_filled.groupBy("category", "region").agg(sum(col("sales")).alias("total_sales"))
# Sort the results
df_aggregated_sorted = df_aggregated.orderBy("total_sales", ascending=False)
# Save the aggregated DataFrame
df_aggregated_sorted.write.csv("path/to/aggregated/data.csv", header=True)
Scenario 2: Data Transformation
Interviewer: "How would you transform a DataFrame by converting a column to timestamp, handling invalid dates and extracting specific date components?"
Candidate:
# Load the DataFrame
df = spark.read.csv("path/to/data.csv", header=True, inferSchema=True)
# Convert column to timestamp
from pyspark.sql.functions import to_timestamp, col
df_transformed = df.withColumn("date_column", to_timestamp(col("date_column"), "yyyy-MM-dd"))
# Handle invalid dates
df_transformed_filtered = df_transformed.filter(col("date_column").isNotNull())
# Extract date components
from pyspark.sql.functions import year, month, dayofmonth
df_transformed_extracted = df_transformed_filtered.withColumn("year", year(col("date_column"))).withColumn("month", month(col("date_column"))).withColumn("day", dayofmonth(col("date_column")))
# Save the transformed DataFrame
df_transformed_extracted.write.csv("path/to/transformed/data.csv", header=True)
Scenario 3: Data Partitioning
Interviewer: "How would you partition a large DataFrame by date and save it to parquet format, handling data skewness and optimizing storage?"
Candidate:
# Load the DataFrame
df = spark.read.csv("path/to/data.csv", header=True, inferSchema=True)
# Partition by date
df_partitioned = df.repartitionByRange("date_column")
# Save to parquet format
df_partitioned.write.parquet("path/to/partitioned/data.parquet", partitionBy=["date_column"])
# Optimize storage
df_partitioned.write.option("compression", "snappy").parquet("path/to/partitioned/data.parquet", partitionBy=["date_column"])
Here, you can find Data Engineering Resources 👇
https://topmate.io/analyst/910180
All the best 👍👍from pyspark.sql.functions import when, isnan
# Load the DataFrame
df = spark.read.csv("path/to/data.csv", header=True, inferSchema=True)
# Check for missing values
missing_count = df.select([count(when(isnan(c), c)).alias(c) for c in df.columns])
# Replace missing values with mean
from pyspark.sql.functions import mean
mean_values = df.agg(*[mean(c).alias(c) for c in df.columns])
df_filled = df.fillna(mean_values)
# Save the cleaned DataFrame
df_filled.write.csv("path/to/cleaned/data.csv", header=True)
Interviewer: "That's correct! Can you explain why you used the fillna() method?"
Candidate: "Yes, fillna() replaces missing values with the specified value, in this case, the mean of each column."
*Scenario 2: Data Aggregation*
Interviewer: "How would you aggregate data by category and calculate the average sales amount?"
Candidate:
# Load the DataFrame
df = spark.read.csv("path/to/data.csv", header=True, inferSchema=True)
# Aggregate data by category
from pyspark.sql.functions import avg
df_aggregated = df.groupBy("category").agg(avg("sales").alias("avg_sales"))
# Sort the results
df_aggregated_sorted = df_aggregated.orderBy("avg_sales", ascending=False)
# Save the aggregated DataFrame
df_aggregated_sorted.write.csv("path/to/aggregated/data.csv", header=True)
Interviewer: "Great answer! Can you explain why you used the groupBy() method?"
Candidate: "Yes, groupBy() groups the data by the specified column, in this case, 'category', allowing us to perform aggregation operations."
Here, you can find Data Engineering Resources 👇
https://topmate.io/analyst/910180
All the best 👍👍repartition() and coalesce() in PySpark. When would you use each?
𝐃𝐚𝐭𝐚 𝐏𝐢𝐩𝐞𝐥𝐢𝐧𝐞 𝐃𝐞𝐯𝐞𝐥𝐨𝐩𝐦𝐞𝐧𝐭:
11. Describe how you would implement an ETL pipeline in PySpark for processing streaming data.
12. How do you ensure data consistency and fault tolerance in a PySpark job?
13. You need to aggregate data from multiple sources and save it as a partitioned Parquet file. How would you do this in PySpark?
14. How would you orchestrate and manage a complex PySpark job with multiple stages?
15. Explain how you would handle schema evolution in PySpark while reading and writing data.
𝐃𝐞𝐛𝐮𝐠𝐠𝐢𝐧𝐠 𝐚𝐧𝐝 𝐄𝐫𝐫𝐨𝐫 𝐇𝐚𝐧𝐝𝐥𝐢𝐧𝐠:
16. Have you encountered out-of-memory errors in PySpark? How did you resolve them?
17. What steps would you take if a PySpark job fails midway through execution? How do you recover from it?
18. You encounter a Spark task that fails repeatedly due to data corruption in one of the partitions. How would you handle this?
19. Explain a situation where you used custom UDFs (User Defined Functions) in PySpark. What challenges did you face, and how did you overcome them?
20. Have you had to debug a PySpark (Python + Apache Spark) job that was producing incorrect results?
Here, you can find Data Engineering Resources 👇
https://topmate.io/analyst/910180
All the best 👍👍