Apache spark 数据框创建一个数据框列表,其大小为

Apache spark 数据框创建一个数据框列表,其大小为,apache-spark,dataframe,apache-spark-sql,databricks,Apache Spark,Dataframe,Apache Spark Sql,Databricks,我正在研究Databricks,我想要一个所有数据帧的列表,以及它们的观察次数 是否可以为DataLake中的每个数据帧设置大小(行数) 我找到了如何列出所有数据帧: display(dbutils.fs.ls("dbfs:/mnt/adls/fraud/qal/landing"))* 我知道怎么数数 是否可以列出我的数据帧和大小 谢谢,您可以从文件列表和行计数创建一个数据框。下面的代码假设您的所有表都是拼花格式的。如果不是这样,您需要更改读取代码 def namesAndRowCounts(

我正在研究Databricks,我想要一个所有数据帧的列表,以及它们的观察次数

是否可以为DataLake中的每个数据帧设置大小(行数)

我找到了如何列出所有数据帧:

display(dbutils.fs.ls("dbfs:/mnt/adls/fraud/qal/landing"))*
我知道怎么数数

是否可以列出我的数据帧和大小


谢谢,

您可以从文件列表和行计数创建一个
数据框。下面的代码假设您的所有表都是拼花格式的。如果不是这样,您需要更改读取代码

def namesAndRowCounts(root: String) =
  spark.createDataFrame(
    dbutils.fs.ls(root).map { info =>
      (info.name, spark.read.load(info.path).count)
    }
  ).toDF("name", "rows").orderBy('name)

display(namesAndRowCounts("/mnt/adls/fraud/qal/landing"))

谢谢你的回答,我有avro格式,所以阅读代码会有所不同。问题中没有提到VRO,但它不会改变方法:你只需在加载()之前添加
.format(“com.databricks.spark.avro”)
。有关更多详细信息,请参阅:是否有可能将其转换为Python?我试过了,但是在Workers上的SparkContext出现了一个错误:从pyspark.sql导入行def namesAndRowCounts(root):Row=sc.parallelize(dbutils.fs.ls(root)).map(lambda info:Row(name=info.name,path=info.path,rows=sqlContext.load(info.path).count())#似乎您正试图从广播变量引用SparkContext,行动,或转变。SparkContext只能在驱动程序上使用,不能在工作程序上运行的代码中使用。有关更多信息,请参阅SPARK-5063。返回sqlContext.createDataFrame(行)