Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 使用spark(特定于spark的API)从文件夹访问最新更改的文件_Java_Apache Spark_Hdfs_Azure Storage Blobs - Fatal编程技术网

Java 使用spark(特定于spark的API)从文件夹访问最新更改的文件

Java 使用spark(特定于spark的API)从文件夹访问最新更改的文件,java,apache-spark,hdfs,azure-storage-blobs,Java,Apache Spark,Hdfs,Azure Storage Blobs,我尝试使用spark的sc.textfile('/home/sathya/location/*.txt') 但是,我需要获取最新添加的文件,而不是获取目录下的所有文件 谢谢, Sathiyarajan M您可以从目录中获取最新修改的文件,并将其传递到sc.textFile()以在spark中读取 下面是如何获得最新修改的文件 val directory = new File("/home/sathya/location/") val allFiles = directory.listFiles

我尝试使用spark的
sc.textfile('/home/sathya/location/*.txt')
但是,我需要获取最新添加的文件,而不是获取目录下的所有文件

谢谢,
Sathiyarajan M

您可以从目录中获取最新修改的文件,并将其传递到
sc.textFile()
以在spark中读取

下面是如何获得最新修改的文件

val directory = new File("/home/sathya/location/")
val allFiles = directory.listFiles
  .filter(_.isFile)
  .sortBy(-_.lastModified())
  .toList

val latestFile = allFiles(0)
这里的
latestFile
是最新修改的文件,现在您可以将最新的文件读入spark,如下所示

sc.textFile(latestFile)

希望这有帮助

您可以从目录中获取最新修改的文件,并将其传递到
sc.textFile()
以在spark中读取

下面是如何获得最新修改的文件

val directory = new File("/home/sathya/location/")
val allFiles = directory.listFiles
  .filter(_.isFile)
  .sortBy(-_.lastModified())
  .toList

val latestFile = allFiles(0)
这里的
latestFile
是最新修改的文件,现在您可以将最新的文件读入spark,如下所示

sc.textFile(latestFile)

希望这有帮助

对于您的问题,没有现成的解决方案,首先查找最新的文件,然后加载它

Java示例:

/**
 * Function to get latest file in directory
 */
public static String latestFileInDir(String dir) throws IOException, InterruptedException {

    //Replace hadoop home
    String command = "<HADOOP_HOME>/bin/hadoop fs -ls -R " + dir + " | awk -F\" \" '{print $6\" \"$7\" \"$8}' | sort -nr | head -1";

    ProcessBuilder pb = new ProcessBuilder("/bin/sh", "-c", command);
    String op = null;
    Process process = pb.start();
    int errCode = process.waitFor();
    if (errCode == 0) {
        BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
        op = br.readLine();
    }

    return op;
}

对于您的问题没有现成的解决方案,首先查找最新的文件,然后加载它

Java示例:

/**
 * Function to get latest file in directory
 */
public static String latestFileInDir(String dir) throws IOException, InterruptedException {

    //Replace hadoop home
    String command = "<HADOOP_HOME>/bin/hadoop fs -ls -R " + dir + " | awk -F\" \" '{print $6\" \"$7\" \"$8}' | sort -nr | head -1";

    ProcessBuilder pb = new ProcessBuilder("/bin/sh", "-c", command);
    String op = null;
    Process process = pb.start();
    int errCode = process.waitFor();
    if (errCode == 0) {
        BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
        op = br.readLine();
    }

    return op;
}

如果这回答了您的问题,您可以接受作为答案并结束主题。这对其他人也有帮助如果这回答了你的问题,你可以接受作为答案并结束话题。这对其他人也有帮助