val sc = new SparkContext(new SparkConf().setAppName("AppName"))
sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "ACCESS_KEY")
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "SECRET_ACCESS_KEY")
val textFile = sc.textFile("s3n://bucket/source_path")
textFile.saveAsTextFile("s3n://bucket/target_path")
FileSystem.get(new URI("s3n://bucket"), sc.hadoopConfiguration).exists(new Path("s3n://bucket/path_to_check"))
若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录不存在。
二、Java代码实现
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HDFSFileIfExist {
 * 判断目录是否存在,注意:只能在driver端使用,可以多线程来提速。问题: 对删除过的目录可能会误判
def pathIsExist(spark: SparkSession, path: String): Boolean = {
  //取文件系统
  val filePath = new org.apache.hadoop.fs.Path( path )
  val fileSystem = filePath.getFileSystem( spark.sparkContex.
import scala.collection.mutable._
object Demo02 {
  val v1=100                                      //> v1  : Int = 100
  //懒加载,声明时不是马上赋值,被调用时才会被赋值,只能修饰常量val,不能修饰变...
                                    I would like to read multiple parquet files into a dataframe from S3. Currently, I'm using the following method to do this:files = ['s3a://dev/2017/01/03/data.parquet','s3a://dev/2017/01/02/data.parqu...
 * 判断目录是否存在,注意:只能在driver端使用,可以多线程来提速。
def pathIsExist(spark: SparkSession, path: String): Boolean = {
  //取文件系统
  val filePath = new org.apache.hadoop.fs.Path( path )
  val f...
                                    spark中,检测hdfs文件是否存在 和 删除文件
import org.apache.hadoop.fs.{FileSystem, Path}
import org.apache.spark.ml.common.HdfsHelper.isDir
1、检测hdfs文件路径是否存在
def pathIsExist(spark: SparkSession, path: String): Boolean = {
//取文件系统
val filePath = new org.apache.hadoop.fs.P
import org.apache.hadoop.fs.{FSDataOutputStream, FileSystem, Path}
val filePath = new org.apache.hadoop.fs.Path(Path)
val fileSystem = filePath.getFileSystem(spark.sparkContext.hadoopConfiguration)
//判断路径下的HDFS文件是否存在
fileSystem.exis
常量:var(variable的缩写),变量赋值后可以修改的
常量:val(value的缩写),常量一经赋值,不允许修改
2.scala是以换行符为一条语句的结束标识,所以不需要加;
3.如果要在一行中写多条语句,则需要用;隔开 比如:val v1 =“hello”;va
                                    本篇来介绍一下通过Spark来读取和HDFS上的数据,主要包含四方面的内容:将RDD写入HDFS、读取HDFS上的文件、将HDFS上的文件添加到Driver、判断HDFS上文件路径是否存...
  for doc in os.listdir(mainfile):
    newpath = os.path.join(mainfile, doc)
    if os.path.isfile(newpath):
      path_list.append(newpath...