使用 spark(Scala) 从 hdfs 读取文件
read files from hdfs using spark(Scala)
请告诉我如何从 hdfs 读取文件。我刚刚开始使用 Scala 和 Spark。我可以读取位于文件夹中的单独文件:
val parqDF = spark.read.parquet("hdfs://nn1home:8020/user/stg/ads/year=2020/month=1/day=1/16_data.0.parq")
但我想阅读包含所有镶木地板的整个文件夹
还有一个 重要 问题,
我如何使用我的镶木地板
路径中的数据向我的数据框添加列
谢谢你的建议
import org.apache.spark.sql.functions.lit
val inputPath = "<you path>"
val dataDF = spark.read.parquet(inputPath)
dataDF.printSchema()
// root
// |-- _c0: string (nullable = true)
// |-- _c1: string (nullable = true)
// |-- _c2: string (nullable = true)
// |-- _c3: string (nullable = true)
val resDF = dataDF.withColumn("new_col", lit(inputPath))
resDF.printSchema
// root
// |-- _c0: string (nullable = true)
// |-- _c1: string (nullable = true)
// |-- _c2: string (nullable = true)
// |-- _c3: string (nullable = true)
// |-- new_col: string (nullable = false)
resDF.schema
// res2: org.apache.spark.sql.types.StructType = StructType(
// StructField(_c0,StringType,true),
// StructField(_c1,StringType,true),
// StructField(_c2,StringType,true),
// StructField(_c3,StringType,true),
// StructField(new_col,StringType,false)
// )
// resDF.show(false) - show data dataframe
请告诉我如何从 hdfs 读取文件。我刚刚开始使用 Scala 和 Spark。我可以读取位于文件夹中的单独文件:
val parqDF = spark.read.parquet("hdfs://nn1home:8020/user/stg/ads/year=2020/month=1/day=1/16_data.0.parq")
但我想阅读包含所有镶木地板的整个文件夹
还有一个 重要 问题, 我如何使用我的镶木地板
路径中的数据向我的数据框添加列谢谢你的建议
import org.apache.spark.sql.functions.lit
val inputPath = "<you path>"
val dataDF = spark.read.parquet(inputPath)
dataDF.printSchema()
// root
// |-- _c0: string (nullable = true)
// |-- _c1: string (nullable = true)
// |-- _c2: string (nullable = true)
// |-- _c3: string (nullable = true)
val resDF = dataDF.withColumn("new_col", lit(inputPath))
resDF.printSchema
// root
// |-- _c0: string (nullable = true)
// |-- _c1: string (nullable = true)
// |-- _c2: string (nullable = true)
// |-- _c3: string (nullable = true)
// |-- new_col: string (nullable = false)
resDF.schema
// res2: org.apache.spark.sql.types.StructType = StructType(
// StructField(_c0,StringType,true),
// StructField(_c1,StringType,true),
// StructField(_c2,StringType,true),
// StructField(_c3,StringType,true),
// StructField(new_col,StringType,false)
// )
// resDF.show(false) - show data dataframe