我想从Dask dataframe中保存多个parquet文件,一个parquet文件用于特定列中的所有唯一值。因此,parquet文件的数量应该等于该列中唯一值的数量。
import pandas as pd
from dask import dataframe as dd
df = pd.DataFrame(
{
"A": [1, 1, 2, 3, 1, 3, 6, 6],
"B": ["A", "L", "C", "D", "A", "B", "A", "B"],
"C": [1, 2, 3, 4, 5, 6, 7, 8],
}
)
ddf = dd.from_pandas(df, npartitions=2)
for i in ddf["A"].unique().compute():
ddf.loc[ddf["A"] == i].to_parquet(f"file_{i}.parquet", schema="infer")
这并不完全是您想要的,但是可以使用.to_parquet
的partition_on
选项:
ddf.to_parquet("file_parquet", schema="infer", partition_on="A")
请注意,这并不能保证每个分区有一个文件,而是在file_parquet
中有子文件夹,可能包含多个文件。
我是Spark的新手。我尝试在本地模式(windows)下使用spark java将csv文件保存为parquet。我得到了这个错误。 原因:org.apache.spark.Spark异常:写入行时任务失败 我引用了其他线程并禁用了spark推测 set("spark.speculation "," false ") 我还是会出错。我在csv中只使用了两个专栏进行测试。 输入: 我的代码: 请帮
我有一个用例,我需要将拼花文件从Lambda保存到S3。我需要以追加模式存储Lambda函数中触发的事件。 我尝试使用Avro,但它不允许将数据以追加模式存储在同一个拼花文件中。 到目前为止,我发现只要spark允许在附加模式下将数据存储在拼花文件中…然后,我可以使用Lambda提交一个存储数据的spark作业。你认为这个可能的解决方案如何? 然而,真的不存在不使用spark的解决方案吗?预先感谢
如果我写信 临时工。拼花文件夹我得到了和行号相同的文件号 我想我不太了解拼花地板,但它是自然的吗?
我需要从不是父目录或子目录的多个路径读取拼花地板文件。 例如, 从dir1\u 1和dir1\u 2读取拼花文件 现在,我正在读取每个目录并使用“unionAll”合并数据帧。有没有一种方法可以不使用unionAll从dir1\u 2和dir2\u 1读取拼花地板文件,或者有没有什么奇特的方法可以使用unionAll 谢谢
我想从AWS SageMaker保存一个Spark数据帧到S3。在笔记本上,我跑 在笔记本上该如何正确做?多谢!
我们正在寻找一种解决方案,以便创建一个外部配置单元表,根据parquet/avro模式从parquet文件中读取数据。 换句话说,如何从拼花/avro模式生成hive表? 谢谢:)
我有AWS胶水ETL作业,每15分钟运行一次,每次在S3中生成一个拼花文件。 我需要创建另一个作业来运行每小时结束,以使用AWS Glue ETL pyspark代码将S3中的所有4个拼花文件合并为1个拼花文件。 有人试过吗?建议和最佳做法? 提前感谢!
如何读取带有条件作为数据帧的分区镶木地板, 这工作得很好, 分区存在的时间为< code>day=1到day=30是否可能读取类似于< code>(day = 5到6)或< code>day=5,day=6的内容, 如果我输入< code>*,它会给出所有30天的数据,而且太大了。