Java RDD另存为文本文件
如何使用RDD.save as text file?以分隔格式保存文本文件?。。此外,我还需要将dataframe列作为标题写入。。我如何做到这一点 对于大型RDD,有没有比下面更简单的方法Java RDD另存为文本文件,java,csv,apache-spark,rdd,Java,Csv,Apache Spark,Rdd,如何使用RDD.save as text file?以分隔格式保存文本文件?。。此外,我还需要将dataframe列作为标题写入。。我如何做到这一点 对于大型RDD,有没有比下面更简单的方法 List<Row> data = resultFrame.toJavaRDD().collect(); try { File file = new File(fileName); if (!file.exists()) { file.create
List<Row> data = resultFrame.toJavaRDD().collect();
try {
File file = new File(fileName);
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file);
BufferedWriter bufferedWriter = new BufferedWriter(fw);
for (Row dataRow:data)
{
StringBuilder row = new StringBuilder();
for(int i = 0; i<dataRow.size();i++)
{
row.append(dataRow.get(i));
if (i != dataRow.size()-1)
{
row.append("~");
}
}
bufferedWriter.write(row.toString());
bufferedWriter.write("\n");
row.setLength(0);
}
bufferedWriter.close();
} catch (IOException e) {
LOGGER.error("Error in writing to the ruf file");
}
List data=resultFrame.toJavaRDD().collect();
试一试{
文件=新文件(文件名);
如果(!file.exists()){
createNewFile();
}
FileWriter fw=新的FileWriter(文件);
BufferedWriter BufferedWriter=新的BufferedWriter(fw);
for(行数据行:数据)
{
StringBuilder行=新建StringBuilder();
对于(inti=0;i,正如您使用SQLContext.read()读取一样,您需要使用DataFrame.write()
不推荐使用其他方法(例如SQLContext.parquetFile、SQLContext.jsonFile)。正如使用SQLContext.read()读取一样,您需要使用DataFrame.write()
不推荐使用其他方法(例如SQLContext.parquetFile、SQLContext.jsonFile)。感谢您的回复。以下方法有效
public class TildaDelimiter implements Function<Row, String> {
public String call(Row r) {
return r.mkString("~");
}
}
in my save as i did the following to save as a ~ delimited file
resultFrame.toJavaRDD().map(new TildaDelimiter()).coalesce(1, true)
.saveAsTextFile(folderName);
public类TildaDelimiter实现函数{
公共字符串调用(r行){
返回r.mkString(“~”);
}
}
在“另存为”中,我执行了以下操作以另存为分隔符的文件
resultFrame.toJavaRDD().map(新的TildaDelimiter()).coalesce(1,true)
.saveAsTextFile(folderName);
感谢您的回复。以下措施奏效了
public class TildaDelimiter implements Function<Row, String> {
public String call(Row r) {
return r.mkString("~");
}
}
in my save as i did the following to save as a ~ delimited file
resultFrame.toJavaRDD().map(new TildaDelimiter()).coalesce(1, true)
.saveAsTextFile(folderName);
public类TildaDelimiter实现函数{
公共字符串调用(r行){
返回r.mkString(“~”);
}
}
在“另存为”中,我执行了以下操作以另存为分隔符的文件
resultFrame.toJavaRDD().map(新的TildaDelimiter()).coalesce(1,true)
.saveAsTextFile(folderName);