Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从hadoopish文件夹加载拼花文件_Java_Python_Apache Spark_Apache Spark Sql_Pyspark Sql - Fatal编程技术网

Java 如何从hadoopish文件夹加载拼花文件

Java 如何从hadoopish文件夹加载拼花文件,java,python,apache-spark,apache-spark-sql,pyspark-sql,Java,Python,Apache Spark,Apache Spark Sql,Pyspark Sql,如果我以这种方式在Java中保存数据帧,…: df.write().parquet("myTest.parquet"); ,然后以Hadoop方式保存(一个包含大量文件的文件夹) 是否可以将数据帧保存为单个文件?我尝试了收集(),但没有帮助 如果不可能,那么我的问题是如何更改Python代码,以便从由df.write().Parquet(“myTest.Parquet”)创建的hadoopish文件夹中读取拼花文件: 是否可以将数据帧保存为单个文件 是的,但您不应该这样做,因为您可能会对单个J

如果我以这种方式在Java中保存数据帧,…:

df.write().parquet("myTest.parquet");
,然后以Hadoop方式保存(一个包含大量文件的文件夹)

是否可以将数据帧保存为单个文件?我尝试了收集(),但没有帮助

如果不可能,那么我的问题是如何更改Python代码,以便从由
df.write().Parquet(“myTest.Parquet”)
创建的hadoopish文件夹中读取拼花文件:

是否可以将数据帧保存为单个文件

是的,但您不应该这样做,因为您可能会对单个JVM施加太多压力,这不仅会导致性能下降,还会导致JVM终止,从而导致整个Spark应用程序失败

因此,是的,有可能并且您应该
重新分区(1)
使用单个分区:

重新分区(numPartitions:Int):数据集[T]返回一个新的数据集,该数据集正好有numPartitions分区


如何更改从hadoopish文件夹读取拼花地板文件的Python代码

将数据集从你称之为“HADOOPHIX”的文件夹中装入,根本不关心内部结构,并将其视为单个文件(即封面下的目录)。

这是文件存储方式的内部表示,不会影响加载文件的代码

是否可以将数据帧保存为单个文件

是的,但您不应该这样做,因为您可能会对单个JVM施加太多压力,这不仅会导致性能下降,还会导致JVM终止,从而导致整个Spark应用程序失败

因此,是的,有可能并且您应该
重新分区(1)
使用单个分区:

重新分区(numPartitions:Int):数据集[T]返回一个新的数据集,该数据集正好有numPartitions分区


如何更改从hadoopish文件夹读取拼花地板文件的Python代码

将数据集从你称之为“HADOOPHIX”的文件夹中装入,根本不关心内部结构,并将其视为单个文件(即封面下的目录)。


这是文件存储方式的内部表示,不会影响加载代码。

Spark将文件写入目录,如您所说,这些文件有很多,如果写入操作成功,它将保存另一个名为
\u success
的空文件

我来自scala,但我相信python中也有类似的方法

parquet
json
或任何您想要的格式保存和读取文件非常简单:

df.write.parquet("path")
loaddf = spark.read.parquet("path")
我尝试了collect(),但没有帮助

谈到
collect
,在这样的操作中使用它不是一个好的做法,因为它会将数据返回给驱动程序,因此您将失去并行计算的好处,如果数据无法放入内存,它将导致
OutOfMemoryException

是否可以将数据帧保存为单个文件

在大多数情况下,您确实不需要这样做,如果是这样,请在保存数据帧之前对其使用
重新分区(1)
方法


希望有帮助,向Spark致意,Spark将您的文件写入一个目录中,如您所说,此文件有很多,如果写入操作成功,它将保存另一个名为
\u success

我来自scala,但我相信python中也有类似的方法

parquet
json
或任何您想要的格式保存和读取文件非常简单:

df.write.parquet("path")
loaddf = spark.read.parquet("path")
我尝试了collect(),但没有帮助

谈到
collect
,在这样的操作中使用它不是一个好的做法,因为它会将数据返回给驱动程序,因此您将失去并行计算的好处,如果数据无法放入内存,它将导致
OutOfMemoryException

是否可以将数据帧保存为单个文件

在大多数情况下,您确实不需要这样做,如果是这样,请在保存数据帧之前对其使用
重新分区(1)
方法

希望对你有帮助,祝你好运