Gom*_*mpu 5 amazon-s3 apache-spark pyspark databricks
我使用以下命令从 databricks 中的 S3 读取镶木地板文件
df = sqlContext.read.parquet('s3://path/to/parquet/file')
Run Code Online (Sandbox Code Playgroud)
我想读取数据帧的架构,可以使用以下命令来执行此操作:
df_schema = df.schema.json()
Run Code Online (Sandbox Code Playgroud)
但我无法将该df_schama
对象写入 S3 上的文件。注意:我愿意不创建 json 文件。我只想将数据帧的架构保存到 AWS S3 中的任何文件类型(可能是文本文件)。
我尝试编写 json 模式如下,
df_schema.write.csv("s3://path/to/file")
Run Code Online (Sandbox Code Playgroud)
或者
a.write.format('json').save('s3://path/to/file')
Run Code Online (Sandbox Code Playgroud)
他们都给我以下错误:
AttributeError: 'str' object has no attribute 'write'
df.schema.json()
结果string
对象和string
对象不会有.write
方法。
In RDD Api:
df_schema = df.schema.json()
Run Code Online (Sandbox Code Playgroud)
并行化df_schema
变量来创建rdd
,然后使用.saveAsTextFile
方法将模式写入 s3。
sc.parallelize([df_schema]).saveAsTextFile("s3://path/to/file")
Run Code Online (Sandbox Code Playgroud)
(或者)
In Dataframe Api:
from pyspark.sql import Row
df_schema = df.schema.json()
df_sch=sc.parallelize([Row(schema=df_schema)]).toDF()
df_sch.write.csv("s3://path/to/file")
df_sch.write.text("s3://path/to/file") //write as textfile
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7970 次 |
最近记录: |