scala存数据进DataFrame
时间: 2023-07-25 11:46:37 浏览: 105
首先需要创建一个 `SparkSession` 对象,然后使用 `createDataFrame` 方法将数据存储到 DataFrame 中。下面是一些示例代码:
```
import org.apache.spark.sql.SparkSession
// 创建 SparkSession 对象
val spark = SparkSession.builder().appName("MyApp").master("local[*]").getOrCreate()
// 创建数据
val data = Seq(("Alice", 25), ("Bob", 30), ("Charlie", 35))
// 将数据存储到 DataFrame 中
val df = spark.createDataFrame(data).toDF("name", "age")
// 显示 DataFrame 的内容
df.show()
```
这里创建了一个包含三个元组的 `data` 序列,每个元组包含一个名字和一个年龄。然后使用 `createDataFrame` 方法将数据存储到 DataFrame 中,并使用 `toDF` 方法为 DataFrame 中的列指定名称。最后使用 `show` 方法显示 DataFrame 的内容。
相关问题
用Scala语言过滤spark dataframe某一列不含0.0的数据
你可以使用`filter`函数结合`!==`操作符来实现过滤某一列不含0.0的数据,具体代码如下:
```scala
import org.apache.spark.sql.functions.col
val df_filtered = df.filter(col("your_column_name") !== 0.0)
```
其中,`df`为你的DataFrame对象,`your_column_name`为你要过滤的列名。这段代码会返回一个新的DataFrame对象`df_filtered`,其中不包含任何一行的`your_column_name`列值为0.0的数据。
scala编程实现利用DataFrame插入如表8-2所示的两行数据到MySQL中,最后打印出age的最大值和age的总和。,显示结果图
抱歉,我无法在这里显示结果图。以下是Scala代码实现:
```scala
import org.apache.spark.sql.{DataFrame, SparkSession}
import java.util.Properties
object MySQLInsert {
def main(args: Array[String]): Unit = {
// 创建SparkSession对象
val spark = SparkSession.builder()
.appName("MySQLInsert")
.master("local[*]")
.getOrCreate()
// 读取CSV文件创建DataFrame
val df = spark.read
.option("header", "true")
.option("inferSchema", "true")
.csv("path/to/csv/file")
// 创建Properties对象,用于配置JDBC连接信息
val prop = new Properties()
prop.put("user", "root")
prop.put("password", "123456")
prop.put("driver", "com.mysql.jdbc.Driver")
// 将数据插入MySQL中
df.write.mode("append")
.jdbc("jdbc:mysql://localhost:3306/test", "student", prop)
// 查询age的最大值和总和
val resultDF = spark.read.jdbc("jdbc:mysql://localhost:3306/test", "student", prop)
resultDF.agg(max("age"), sum("age")).show()
// 关闭SparkSession对象
spark.stop()
}
}
```
需要注意的是,代码中的连接信息和表名需要根据实际情况进行修改。
阅读全文