Odpowiedz do: Formatowanie kodu np. pyspark

  • Przemysław Lelewski

    Member
    2026-07-16 at 21:52
    662 Exp

    Dzięki.

    To jeszcze jedno – załączam skrypt z jednego z ćwiczeń (średnia cena pizzy itd.)

    Znajdziecie w nim dwie wersje pokazania tego samego. Jakby bardziej przemawia do mnie ta pierwsza w nawiasach, ale Pycharm (przynajmniej mój, ale czytałem, że to powszechny problem) traci kontekst i nie podpowiada metod.

    To która jest „lepsza” czyli stosowana w kodach na PROD.

    from pyspark.sql import SparkSession
    from pyspark.sql.functions import col, min, max, avg, regexp_replace, round


    def main():
    spark = SparkSession.builder \
    .appName('logika') \
    .master('local') \
    .getOrCreate()

    df = spark.read.csv(
    '../data/pizza_data.csv',
    header=True,
    inferSchema=True,
    sep=','
    )

    # get Medium pizzas and get min/max/avg
    (
    df
    .filter(df
    .Size
    .like('%Medium%')
    )
    .withColumn(
    'Price',
    regexp_replace(col('Price'), r'\$', '').cast('double')
    )
    .agg(
    min('Price').alias('min_price'),
    max('Price').alias('max_price'),
    round(avg('Price'), 2).alias('max_price')
    )
    .show()
    )

    # different way to show the same
    df \
    .filter(df
    .Size
    .like('%Medium%')
    ) \
    .withColumn(
    'Price',
    regexp_replace(col('Price'), r'\$', '').cast('double')
    ) \
    .agg(
    min('Price').alias('min_price'),
    max('Price').alias('max_price'),
    round(avg('Price'), 2).alias('max_price')
    ) \
    .show()


    if __name__ == "__main__":
    main()