【问题标题】:pyspark: dataframes write to parquetpyspark:数据帧写入镶木地板
【发布时间】:2017-02-17 15:37:24
【问题描述】:

通过 pyspark 脚本运行以加载镶木地板时出现以下错误。通过 pyspark shell 进行测试时没有问题

交互模式工作正常:

 df_writer = pyspark.sql.DataFrameWriter(df)
 df_writer.saveAsTable('test', format='parquet', mode='overwrite',path='xyz/test_table.parquet')

脚本模式抛出错误:

/opt/mapr/spark/spark-2.0.1//bin/spark-submit --jars /opt/mapr/spark/spark-2.0.1/-2.0.1/jars/commons-csv-1.2.jar /home/mapr/scripts/pyspark_load.py
17/02/17 14:57:06 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
Traceback (most recent call last):
  File "/home/mapr/scripts/2_pyspark_load.py", line 23, in <module>
    df_writer = pyspark.sql.DataFrameWriter(df)
NameError: name 'pyspark' is not defined

【问题讨论】:

    标签: python pyspark pyspark-sql


    【解决方案1】:

    您还可以以更简单的方式保存数据框:

    df.write.parquet("xyz/test_table.parquet", mode='overwrite')
    # 'df' is your PySpark dataframe
    

    【讨论】:

      【解决方案2】:

      对于我的脚本,interactive 和 spark_submit 之间的区别在于我必须导入 pyspark。比如

      import pyspark
      
      df_writer = pyspark.sql.DataFrameWriter(df)
      # Rest of Code
      

      【讨论】:

        猜你喜欢
        • 2020-06-30
        • 2021-03-26
        • 2019-10-13
        • 1970-01-01
        • 2023-03-05
        • 2020-03-23
        • 2018-12-22
        • 2020-04-02
        • 2018-11-10
        相关资源
        最近更新 更多