發表文章

Spark語法_SparkContext與SparkSession的初始化及RDD操作

圖片
  https://link.springer.com/chapter/10.1007/978-1-4842-9380-5_1 下載PySpark與findspark的套件 pip install pyspark pip install findspark 引入套件並初始化Spark Context跟Spark Session import findspark findspark.init() # PySpark is the Spark API for Python. In this lab, we use PySpark to initialize the spark context. from pyspark import SparkContext, SparkConf from pyspark.sql import SparkSession # Creating a spark context class sc = SparkContext() # Creating a spark session spark = SparkSession \ .builder \ .appName( "Python Spark DataFrames basic example" ) \ .config( "spark.some.config.option" , "some-value" ) \ .getOrCreate() if 'spark' in locals () and isinstance (spark, SparkSession): print ( "SparkSession is active and ready to use." ) else : print ( "SparkSession is not active. Please create a SparkSession." ) 透過調用 sc.parallelize() 來創建一個 RDD 創建了一個包含從 1 到 30 的整數的 RDD。 data = range ( 1 , 30 ) # print...

實作PySpark與Pandas程式的數據分析_Spark DataFrame與SparkSQL常見操作

圖片
  findspark :用於定位 Spark 安裝。 pandas :被導入以進行數據處理。 SparkSession對於使用PySpark至關重要。它允許創建DataFrame、加載數據和進行各種操作。 初始化具有指定應用程式名稱的 Spark Session。 SparkSession.builder.appName("COVID-19 Data Analysis").getOrCreate() 第一階段.檢測Spark Session是否成功啟動 import findspark # This helps us find and use Apache Spark findspark.init() # Initialize findspark to locate Spark from pyspark.sql import SparkSession from pyspark.sql.types import StructType, StructField, StringType, IntegerType, LongType, DateType import pandas as pd # Initialize a Spark Session spark = SparkSession \ .builder \ .appName( "COVID-19 Data Analysis" ) \ .config( "spark.sql.execution.arrow.pyspark.enabled" , "true" ) \ .getOrCreate() # Check if the Spark Session is active if 'spark' in locals () and isinstance (spark, SparkSession): print ( "SparkSession is active and ready to use." ) else : print ( "SparkSession is not active. Plea...

Apache Spark筆記03_Dataframes跟SparkSQL介紹及常見操作

圖片
  https://rharshad.com/spark-sql-dataframes-datasets/#dataframes 捨麼是SparkSQL? Spark SQL 是一個用於結構化數據處理的 Spark 模組。 用於在 Spark DataFrames 上運行 SQL 查詢,並提供 Java、 Scala、Python 和 R 的 API。  可以使用 SQL 查詢和透過DataFrame API 與 Spark SQL 交互。 有別於Spark RDD API,Spark SQL 包括基於成本的優化器(cost-based optimizer)、欄位式儲存(columnar storage)和代碼生成(code generation)。為 Spark 提供有關數據結構以及正在進行計算的優化。 Spark SQL 支持臨時和全局臨時表格視圖。 (臨時視圖具有局部作用域。 局部作用域意味著視圖僅在當前 Spark 會話中的當前節點內存在。然而,全局臨時視圖存在於一般的 Spark 應用程序中。全局臨時視圖可以在不同的 Spark 會話間共享。) SparkSQL支持的資料來源格式: Parquet:是許多數據處理系統支持的列式格式。 JSON 數據:可以通過推斷模式加載和寫入 JSON 數據。 Hive 中的表數據:支持讀取和寫入存儲在 Hive 中的數據。 Spark-SQL-Optimization https://medium.com/bryanyang0528/%E7%B0%A1%E5%96%AE%E4%BB%8B%E7%B4%B9-sparksql-77dd47c80bc1 https://www.databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets.html 使用SparkSQL的好處? Spark SQL 支援 Java、Scala、Python 和 R這類程式語言的API。 Spark SQL 使用相同的執行引擎來計算結果,與用於計算的 API 或語言無關。開發人員可以使用提供最自然方式來表示給定轉換的 API。 什麼是 DataFrame? DataFrame 是組織到命名欄位(named...