ebe*_*tbm 13 python pyspark spark-dataframe
我是Spark的新手,我一直在尝试将一个Dataframe转换为Spark中的镶木地板文件,但我还没有成功.该文件说,我可以使用write.parquet函数来创建该文件.但是,当我运行脚本时它向我显示:AttributeError:'RDD'对象没有属性'write'
from pyspark import SparkContext
sc = SparkContext("local", "Protob Conversion to Parquet ")
# spark is an existing SparkSession
df = sc.textFile("/temp/proto_temp.csv")
# Displays the content of the DataFrame to stdout
df.write.parquet("/output/proto.parquet")
Run Code Online (Sandbox Code Playgroud)
你知道怎么做这个吗?
我正在使用的spark版本是为Hadoop 2.7.3构建的Spark 2.0.1.
ebe*_*tbm 31
错误是由于返回的textFile方法和我需要的方法是一个.SparkContextRDDDataFrame
SparkSession有一个SQLContext引擎盖.所以我需要使用DataFrameReader它来正确读取CSV文件,然后再将其转换为镶木地板文件.
spark = SparkSession \
.builder \
.appName("Protob Conversion to Parquet") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
# read csv
df = spark.read.csv("/temp/proto_temp.csv")
# Displays the content of the DataFrame to stdout
df.show()
df.write.parquet("output/proto.parquet")
Run Code Online (Sandbox Code Playgroud)
您还可以使用koalas从 Spark 写出 Parquet 文件。这个库非常适合喜欢 Pandas 语法的人。Koalas 的底层是 PySpark。
这是考拉代码:
import databricks.koalas as ks
df = ks.read_csv('/temp/proto_temp.csv')
df.to_parquet('output/proto.parquet')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50413 次 |
| 最近记录: |