【发布时间】:2020-06-22 17:45:50
【问题描述】:
我有一个 pyspark 数据框,其中包含 1000 列和 10,000 条记录(行)。 我需要通过对现有列执行一些计算来再创建 2000 列。
df #pyspark dataframe contaning 1000 columns and 10,000 records
df = df.withColumn('C1001', ((df['C269'] * df['C285'])/df['C41'])) #existing column names range from C1 to C1000
df = df.withColumn('C1002', ((df['C4'] * df['C267'])/df['C146']))
df = df.withColumn('C1003', ((df['C87'] * df['C134'])/df['C238']))
.
.
.
df = df.withColumn('C3000', ((df['C365'] * df['C235'])/df['C321']))
问题是,这需要的时间太长,大约 45 分钟左右。
由于我是新手,我想知道我做错了什么?
P.S.:我在 databricks 上运行 spark,有 1 个驱动程序和 1 个工作节点,都具有 16GB 内存和 8 个内核。
谢谢!
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql azure-databricks