2017-02-17 6 views
1

Parkett ich die folgenden Fehler haben, wenn sie durch pyspark Skript ausgeführt Parkett table.I haben kein Problem zu laden, wenn durch pyspark Shell testenpyspark: Datenrahmen schreiben

interaktiven Modus funktioniert:

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

Script-Modus wirft einen Fehler:

/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 

Antwort

0

Der Unterschied zwischen interaktiven und spark_submit für meine Skripte ist, dass ich pyspark importieren müssen. So zum Beispiel

import pyspark 

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

Dank, das hilft. – srini

2

Sie können auch Ihre Datenrahmen in einem viel einfacheren Weg sparen:

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