【问题标题】:Getting error while converting DynamicFrame to a Spark DataFrame using toDF使用 toDF 将 DynamicFrame 转换为 Spark DataFrame 时出错
【发布时间】:2018-01-25 05:59:52
【问题描述】:

我声明使用 AWS Glue 使用数据目录和 GlueContext 读取数据并根据要求进行转换。

val spark: SparkContext = new SparkContext()
val glueContext: GlueContext = new GlueContext(spark)
val sparkSession = glueContext.getSparkSession
// Data Catalog: database and table name
val dbName = "abcdb"
val tblName = "xyzdt_2017_12_05"

// S3 location for output
val outputDir = "s3://output/directory/abc"

// Read data into a DynamicFrame using the Data Catalog metadata
val stGBDyf = glueContext.getCatalogSource(database = dbName, tableName = tblName).getDynamicFrame()
val revisedDF = stGBDyf.toDf() // This line getting error 

执行上述代码时出现以下错误,

错误:语法错误:错误:值 toDf 不是 com.amazonaws.services.glue.DynamicFrame val modifiedDF = stGBDyf.toDf() 发现一个错误。

我按照this 示例将DynamicFrame 转换为Spark dataFrame。 请提出解决此问题的最佳方法

【问题讨论】:

  • 嘿,这不相关,但是您是否尝试过直接读取数据库而不通过 JDBC 抓取它?如果是,请分享示例代码

标签: scala amazon-web-services apache-spark aws-glue


【解决方案1】:

有错别字。它应该与 toDF 中的大写 F 一起正常工作:

val revisedDF = stGBDyf.toDF()

【讨论】:

  • 我们如何在 Scala 中将 Dataframe 转换为 Dynamic Frame?
  • @RudreshAjgaonkar 你需要做一个val revisedDynamicFrame = DynamicFrame(revisedDF, glueContext)(和import com.amazonaws.services.glue.{DynamicRecord, GlueContext, DynamicFrame}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 2019-08-15
相关资源
最近更新 更多