gpt4 book ai didi

dataframe - 如何创建具有指定模式的空 DataFrame?

转载 作者:行者123 更新时间:2023-12-03 05:13:23 31 4
gpt4 key购买 nike

我想在 Scala 中使用指定架构在 DataFrame 上创建。我尝试过使用 JSON 读取(我的意思是读取空文件),但我认为这不是最佳实践。

最佳答案

假设您想要一个具有以下架构的数据框:

root
|-- k: string (nullable = true)
|-- v: integer (nullable = false)

您只需定义数据框的架构并使用空的RDD[Row]:

import org.apache.spark.sql.types.{
StructType, StructField, StringType, IntegerType}
import org.apache.spark.sql.Row

val schema = StructType(
StructField("k", StringType, true) ::
StructField("v", IntegerType, false) :: Nil)

// Spark < 2.0
// sqlContext.createDataFrame(sc.emptyRDD[Row], schema)
spark.createDataFrame(sc.emptyRDD[Row], schema)

PySpark 等效项几乎相同:

from pyspark.sql.types import StructType, StructField, IntegerType, StringType

schema = StructType([
StructField("k", StringType(), True), StructField("v", IntegerType(), False)
])

# or df = sc.parallelize([]).toDF(schema)

# Spark < 2.0
# sqlContext.createDataFrame([], schema)
df = spark.createDataFrame([], schema)

将隐式编码器(仅限 Scala)与 Product 类型(例如 Tuple)结合使用:

import spark.implicits._

Seq.empty[(String, Int)].toDF("k", "v")

或案例类别:

case class KV(k: String, v: Int)

Seq.empty[KV].toDF

spark.emptyDataset[KV].toDF

关于dataframe - 如何创建具有指定模式的空 DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31477598/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com