Spark(一)—— 大數據處理入門

一、Spark介紹

Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Spark Streaming.

Spark是一個快速且多功能的集群計算系統。它為多種不同語言提供高級API,和支持一般執行圖的優化引擎。它也有豐富的高級工具集,Spark SQL進行結構化數據的處理,MLib處理機器學習,GraphX進行圖處理,以及Spark Streaming流計算。

組成

它的主要組件有:

  • SparkCore
    • 將分佈式數據抽象為彈性分佈式數據集(RDD),實現了應用任務調度、RPC、序列化和壓縮,併為運行在其上的上層組件提供API。
  • SparkSQL
    • Spark Sql 是Spark來操作結構化數據的程序包,可以讓我使用SQL語句的方式來查詢數據,Spark支持 多種數據源,包含Hive表,parquest以及JSON等內容。
  • SparkStreaming
    • 是Spark提供的實時數據進行流式計算的組件。
  • MLlib
    • 提供常用機器學習算法的實現庫。
  • GraphX
    • 提供一個分佈式圖計算框架,能高效進行圖計算。
  • BlinkDB
    • 用於在海量數據上進行交互式SQL的近似查詢引擎。
  • Tachyon
    • 以內存為中心高容錯的的分佈式文件系統。

返回一個包含數據集前n個元素的數組

二、WordCount程序講解

編寫代碼

scala程序編寫

object WordCountDemo {

  def main(args: Array[String]): Unit = {
    //創建Spark配置對象
    val conf = new SparkConf().setMaster("local").setAppName("MyApp")
    //通過conf創建sc
    val sc = new SparkContext(conf)
    //讀取文件
    val rdd1 = sc.textFile("/Users/README.md")
    //計算
    val rdd2 = rdd1.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
    //打印
    rdd2.take(10).foreach(println)

  }

}

java程序編寫


public class WordCountJavaDemo {

    public static void main(String[] args) {
        
        SparkConf conf = new SparkConf();
        conf.setAppName("myapp").setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(conf);
        JavaRDD<String> rdd1 = sc.textFile("/Users/README.md");
        JavaRDD<String> rdd2 = rdd1.flatMap(new FlatMapFunction<String, String>() {
            @Override
            public Iterator<String> call(String s) throws Exception {
                List<String> list = new ArrayList<>();
                String[] arr = s.split(" ");
                for (String ss : arr) {
                    list.add(ss);
                }
                return list.iterator();
            }
        });

        JavaPairRDD<String, Integer> rdd3 = rdd2.mapToPair(new PairFunction<String, String, Integer>() {

            @Override
            public Tuple2<String, Integer> call(String s) throws Exception {
                return new Tuple2<String, Integer>(s, 1);
            }

        });

        JavaPairRDD<String, Integer> rdd4 = rdd3.reduceByKey(new Function2<Integer, Integer, Integer>() {
            @Override
            public Integer call(Integer v1, Integer v2) throws Exception {
                return v1 + v2;
            }
        });

        List<Tuple2<String, Integer>> list = rdd4.collect();
        for (Tuple2<String, Integer> t : list) {
            System.out.println(t._1() + " " + t._2());
        }
    }

}

三、原理介紹

RDD

  • 由一系列Partition組成
  • RDD之間有一系列依賴關係
  • RDD每個算子實際上是作用在每個Partition上
  • RDD會提供一系列最佳位置
  • 分區器是作用在KV格式的RDD上

RDD會在多個節點上存儲,就和hdfs的分佈式道理是一樣的。hdfs文件被切分為多個block存儲在各個節點上,而RDD是被切分為多個partition。不同的partition可能在不同的節點上。

Spark執行流程

1、Driver
分發task,在分發之前,會調用RDD的方法,獲取partition的位置。
將task的計算結果,拉回到Driver端
Driver是一個JVM進程

2、Worker

寬依賴、窄依賴

圖中stage2的并行度是4,也就是有4個task。

寬依賴

父RDD與子RDD,partition的關係是一對多,就是寬依賴。寬依賴於shuffle對應。

窄依賴

父RDD與子RDD,partition的關係是一對一或多對一,就是窄依賴。

四、Spark常用算子

Transformation算子

特點:懶執行

(1)map

map的輸入變換函數應用於RDD中所有元素

(2)flatMap

flatMap與map區別在於map為“映射”,而flatMap“先映射,后扁平化”,map對每一次(func)都產生一個元素,返回一個對象,而flatMap多一步就是將所有對象合併為一個對象。

(3)flatMapValues

每個元素的Value被輸入函數映射為一系列的值,然後這些值再與原RDD中的Key組成一系列新的KV對。

代碼

x = sc.parallelize([("a", ["x", "y", "z"]), ("b", ["p", "r"])])
def f(x): return x
x.flatMapValues(f).collect()

打印結果

 [('a', 'x'), ('a', 'y'), ('a', 'z'), ('b', 'p'), ('b', 'r')]

filter

過濾操作,滿足filter內function函數為true的RDD內所有元素組成一個新的數據集。

(4)groupByKey

主要作用是將相同的所有的鍵值對分組到一個集合序列當中,其順序是不確定的。

(5)reduceByKey

與groupByKey類似,卻有不同。如(a,1), (a,2), (b,1), (b,2)。groupByKey產生中間結果為( (a,1), (a,2) ), ( (b,1), (b,2) )。而reduceByKey為(a,3), (b,3)。

reduceByKey主要作用是聚合,groupByKey主要作用是分組。

(6)take

Action算子

特點:立即觸發執行

五、SparkSQL

介紹

Spark SQL is a Spark module for structured data processing. Unlike the basic Spark RDD API, the interfaces provided by Spark SQL provide Spark with more information about the structure of both the data and the computation being performed. Internally, Spark SQL uses this extra information to perform extra optimizations. There are several ways to interact with Spark SQL including SQL and the Dataset API. When computing a result the same execution engine is used, independent of which API/language you are using to express the computation. This unification means that developers can easily switch back and forth between different APIs based on which provides the most natural way to express a given transformation.

SparkSQL是Spark的一個用來處理結構化數據的模塊。使用類似SQL的方式訪問Hadoop,實現MR計算。

Datasets的概念

A Dataset is a distributed collection of data. Dataset is a new interface added in Spark 1.6 that provides the benefits of RDDs (strong typing, ability to use powerful lambda functions) with the benefits of Spark SQL’s optimized execution engine. A Dataset can be constructed from JVM objects and then manipulated using functional transformations (map, flatMap, filter, etc.). The Dataset API is available in Scala and Java. Python does not have the support for the Dataset API. But due to Python’s dynamic nature, many of the benefits of the Dataset API are already available (i.e. you can access the field of a row by name naturally row.columnName). The case for R is similar.

Dataset是分佈式數據集合。

DataFrames概念

A DataFrame is a Dataset organized into named columns. It is conceptually equivalent to a table in a relational database or a data frame in R/Python, but with richer optimizations under the hood. DataFrames can be constructed from a wide array of sources such as: structured data files, tables in Hive, external databases, or existing RDDs. The DataFrame API is available in Scala, Java, Python, and R. In Scala and Java, a DataFrame is represented by a Dataset of Rows. In the Scala API, DataFrame is simply a type alias of Dataset[Row]. While, in Java API, users need to use Dataset to represent a DataFrame.

基本使用

(1)創建DataFrames

數據

{"id":"1","name":"zhangsan","age":"12"}
{"id":"2","name":"lisi","age":"12"}
{"id":"3","name":"wangwu","age":"12"}

代碼


object SparkSqlDemo {

  def main(args: Array[String]): Unit = {

    //創建Spark配置對象
    val conf = new SparkConf().setMaster("local[4]").setAppName("MyApp");

    val spark = SparkSession
      .builder()
      .appName("Spark SQL basic example")
      .config(conf)
      .getOrCreate()

    val df = spark.read.json("/Users/opensource/dev-problem/source/people_sample_json.json");
    df.show()

  }

}

(2)查詢

val df = spark.read.json("/Users/fangzhijie/opensource/dev-problem/source/people_sample_json.json");
df.createOrReplaceTempView("people")
val sqlDF = spark.sql("SELECT * FROM people WHERE name = 'zhangsan'")
sqlDF.show()

六、SparkStreaming

介紹

Spark Streaming is an extension of the core Spark API that enables scalable, high-throughput, fault-tolerant stream processing of live data streams. Data can be ingested from many sources like Kafka, Flume, Kinesis, or TCP sockets, and can be processed using complex algorithms expressed with high-level functions like map, reduce, join and window. Finally, processed data can be pushed out to filesystems, databases, and live dashboards. In fact, you can apply Spark’s machine learning and graph processing algorithms on data streams.

基本使用

(1)簡單使用


object SparkStreamingDemo {

  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
    //創建Spark流上下文
    val ssc = new StreamingContext(conf, Seconds(1))
    //創建Socket文本流
    val lines = ssc.socketTextStream("localhost", 9999)
    val words = lines.flatMap(_.split(" "))

    val pairs = words.map(word => (word, 1))
    val wordCounts = pairs.reduceByKey(_ + _)

    // Print the first ten elements of each RDD generated in this DStream to the console
    wordCounts.print()
    //啟動
    ssc.start()
    //等待結束
    ssc.awaitTermination()  // Wait for the computation to terminate


  }

}

使用shell命令監聽端口,輸入待計算內容

$ nc -lk 9999

原理

SparkStreaming的編程抽象是離散化流(DStream),它是一個RDD序列,每個RDD代表數據流中一個時間片內的數據。

參考文檔

《Spark快速大數據分析》

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

大陸寄台灣空運注意事項

大陸海運台灣交貨時間多久?

※避免吃悶虧無故遭抬價!台中搬家公司免費估價,有契約讓您安心有保障!

tensorflow中的學習率調整策略

通常為了模型能更好的收斂,隨着訓練的進行,希望能夠減小學習率,以使得模型能夠更好地收斂,找到loss最低的那個點.

tensorflow中提供了多種學習率的調整方式.在搜索decay.可以看到有多種學習率的衰減策略.

  • cosine_decay
  • exponential_decay
  • inverse_time_decay
  • linear_cosine_decay
  • natural_exp_decay
  • noisy_linear_cosine_decay
  • polynomial_decay

本文介紹兩種學習率衰減策略,指數衰減和多項式衰減.

  • 指數衰減
tf.compat.v1.train.exponential_decay(
    learning_rate,
    global_step,
    decay_steps,
    decay_rate,
    staircase=False,
    name=None
)

learning_rate 初始學習率
global_step 當前總共訓練多少個迭代
decay_steps 每xxx steps后變更一次學習率
decay_rate 用以計算變更后的學習率
staircase: global_step/decay_steps的結果是float型還是向下取整

學習率的計算公式為:decayed_learning_rate = learning_rate * decay_rate ^ (global_step / decay_steps)

我們用一段測試代碼來繪製一下學習率的變化情況.

#coding=utf-8
import matplotlib.pyplot as plt
import tensorflow as tf

x=[]
y=[]
N = 200 #總共訓練200個迭代

num_epoch = tf.Variable(0, name='global_step', trainable=False)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for num_epoch in range(N):
        ##初始學習率0.5,每10個迭代更新一次學習率.
        learing_rate_decay = tf.train.exponential_decay(learning_rate=0.5, global_step=num_epoch, decay_steps=10, decay_rate=0.9, staircase=False)
        learning_rate = sess.run([learing_rate_decay])
        y.append(learning_rate)

#print(y)

x = range(N)
fig = plt.figure()
ax.set_xlabel('step')
ax.set_ylabel('learing rate')
plt.plot(x, y, 'r', linewidth=2)
plt.show()

結果如圖:

  • 多項式衰減
tf.compat.v1.train.polynomial_decay(
    learning_rate,
    global_step,
    decay_steps,
    end_learning_rate=0.0001,
    power=1.0,
    cycle=False,
    name=None
)

設定一個初始學習率,一個終止學習率,然後線性衰減.cycle控制衰減到end_learning_rate后是否保持這個最小學習率不變,還是循環往複. 過小的學習率會導致收斂到局部最優解,循環往複可以一定程度上避免這個問題.
根據cycle是否為true,其計算方式不同,如下:

#coding=utf-8
import matplotlib.pyplot as plt
import tensorflow as tf

x=[]
y=[]
z=[]
N = 200 #總共訓練200個迭代

num_epoch = tf.Variable(0, name='global_step', trainable=False)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for num_epoch in range(N):
        ##初始學習率0.5,每10個迭代更新一次學習率.
        learing_rate_decay = tf.train.polynomial_decay(learning_rate=0.5, global_step=num_epoch, decay_steps=10, end_learning_rate=0.0001, cycle=False)
        learning_rate = sess.run([learing_rate_decay])
        y.append(learning_rate)
        
        learing_rate_decay2 = tf.train.polynomial_decay(learning_rate=0.5, global_step=num_epoch, decay_steps=10, end_learning_rate=0.0001, cycle=True)
        learning_rate2 = sess.run([learing_rate_decay2])
        z.append(learning_rate2)
#print(y)

x = range(N)
fig = plt.figure()
ax.set_xlabel('step')
ax.set_ylabel('learing rate')
plt.plot(x, y, 'r', linewidth=2)
plt.plot(x, z, 'g', linewidth=2)
plt.show()

繪圖結果如下:

cycle為false時對應紅線,學習率下降到0.0001后不再下降. cycle=true時,下降到0.0001后再突變到一個更大的值,在繼續衰減,循環往複.

在代碼里,通常通過參數去控制不同的學習率策略,例如

def _configure_learning_rate(num_samples_per_epoch, global_step):
  """Configures the learning rate.

  Args:
    num_samples_per_epoch: The number of samples in each epoch of training.
    global_step: The global_step tensor.

  Returns:
    A `Tensor` representing the learning rate.

  Raises:
    ValueError: if
  """
  # Note: when num_clones is > 1, this will actually have each clone to go
  # over each epoch FLAGS.num_epochs_per_decay times. This is different
  # behavior from sync replicas and is expected to produce different results.
  decay_steps = int(num_samples_per_epoch * FLAGS.num_epochs_per_decay /
                    FLAGS.batch_size)

  if FLAGS.sync_replicas:
    decay_steps /= FLAGS.replicas_to_aggregate

  if FLAGS.learning_rate_decay_type == 'exponential':
    return tf.train.exponential_decay(FLAGS.learning_rate,
                                      global_step,
                                      decay_steps,
                                      FLAGS.learning_rate_decay_factor,
                                      staircase=True,
                                      name='exponential_decay_learning_rate')
  elif FLAGS.learning_rate_decay_type == 'fixed':
    return tf.constant(FLAGS.learning_rate, name='fixed_learning_rate')
  elif FLAGS.learning_rate_decay_type == 'polynomial':
    return tf.train.polynomial_decay(FLAGS.learning_rate,
                                     global_step,
                                     decay_steps,
                                     FLAGS.end_learning_rate,
                                     power=1.0,
                                     cycle=False,
                                     name='polynomial_decay_learning_rate')
  else:
    raise ValueError('learning_rate_decay_type [%s] was not recognized' %
                     FLAGS.learning_rate_decay_type)

推薦一篇: 對各種學習率衰減策略描述的很詳細.並且都有配圖,可以很直觀地看到各種衰減策略下學習率變換情況.

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※專營大陸空運台灣貨物推薦

台灣空運大陸一條龍服務

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

彰化搬家費用,南投搬家費用,距離,噸數怎麼算?達人教你簡易估價知識!

美軍擬造機動微型核反應爐 解偏遠基地電力需求

摘錄自2020年3月10日中央社報導

美國軍方今(9日)表示,正在規畫部署微型核能反應爐,這種移動式發電廠可用貨車載運,且不受時間限制為偏遠地區的基地提供電力。

法新社報導,美國國防部已經為了這種移動式核反應爐跟三間企業簽訂合約,目標是產生1百萬瓦至5百萬瓦(megawatt)的電力。預計在兩年內,其中一間公司將獲選來生產反應爐的原型。國防部聲明表示,這項名為「裴雷」(Pele)的計畫是透過發展安全的、可移動的、先進的微型核子反應爐,以因應國防部多元的任務需求。

然而,美軍規畫部署微型核能發電設備,部分民間核能專家對此抱持懷疑態度。這些專家認為,若遭遇攻擊,反應爐被破壞後恐導致放射性燃料外洩,或是核物料落入敵人手中且被用來製造低階的髒彈(dirty bomb)。

能源議題
國際新聞
美國
核反應爐
移動

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

※試算大陸海運運費!

武漢肺炎衝擊 IEA:10餘年來石油需求將首度萎縮

摘錄自2020年3月9日中央社報導

國際能源總署(IEA)今(9日)表示,由於2019年冠狀病毒疾病(武漢肺炎)疫情拖累全球經濟活動,2020年全球石油需求料將出現10餘年來首度萎縮。

路透社報導,總部位於法國巴黎的國際能源總署表示,預期2020年石油需求為每日9990萬桶,除較先前預測值減少約100萬桶,也比去年需求少了9萬桶。石油需求將出現2009年以來首度萎縮。國際能源總署執行董事比羅爾(Fatih Birol)發布聲明表示:「這場冠狀病毒危機廣泛影響能源市場,包括煤炭、天然氣與再生能源等。但它對石油市場的衝擊尤其嚴重,因為它阻礙人員與商品流通。」

在國際能源總署大幅下修石油需求預測之際,沙烏地阿拉伯已點燃國際原油價格戰,油價下滑逾1/4,預料還將出現29年來單日最大跌幅。

能源議題
國際新聞
IEA
武漢肺炎
探勘石油

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

※專營大陸快遞台灣服務

台灣快遞大陸的貨運公司有哪些呢?

延燒八個月 澳洲新南威爾斯省野火終於撲滅

摘錄自2020年3月10日大紀元報導

澳洲新南威爾斯省日前正式宣布,當地延燒了大約八個月、造成無數損失的野火,終於完全撲滅了。據CNN報導,新南威爾斯省的消防部門在2月13日宣布,該省所有野火已經受到控制。而現在,所有野火都已經被撲滅。

新南威爾斯鄉村消防署(NSW Rural FIre Service)在3月2日發推文說:「目前沒有在延燒中的野火。這是自2019年7月初以來的第一次。」該署還提到,這場野火持續了超過240天。這場延燒了幾個月的野火最終導致至少28人死亡,大約3,000棟房屋被毀,多達10億隻動物受到波及。

現在,在澳洲政府正式宣布野火被撲滅之後,該國將開始其災後重建的工作,他們正在討論是否應該針對高風險的地區制定重建的限制。而對於在何處和如何重建房屋而言,屋主正面臨困難的選擇。

森林
災害
生態保育
土地水文
國際新聞
澳洲
大火
澳洲野火

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

台灣海運大陸貨務運送流程

兩岸物流進出口一站式服務

獨步全球 盧森堡大眾運輸免費解決塞車困擾

摘錄自2020年3月11日公視報導

歐洲富裕小國盧森堡,推出全國大眾運輸工具免費政策,鼓勵人們減少開車,多利用大眾運輸工具,也減少長期以來的塞車困擾。

盧森堡決定把原定3月1號上路的全國交通免費政策,提前一天上路,政府這麼大方,是為了解決嚴重塞車的問題,希望民眾都願意使用大眾運輸工具。盧森堡人民大部分出門都自己開車,此外,47%的人開車是因為商旅需求,71%的人開車是為了休閒運輸。

目前在盧森堡境內的電車,每趟車資兩歐元,相當於台幣67塊錢,之前車票銷售佔了營運成本5億歐元的8%。不收費之後,將由國庫填補這塊缺口。儘管售票機都已經撤走,不過售票櫃台仍會繼續營運,因為國際線車次以及頭等艙座位,仍須付費。

交通運輸
生活環境
國際新聞
盧森堡
大眾運輸工具
開車
塞車

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包”嚨底家”

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

小三通海運與一般國際貿易有何不同?

小三通快遞通關作業有哪些?

百度將在美國測試無人駕駛汽車 計畫2018年前推商用車型

日前,百度首席科學家吳恩達在接受國外媒體採訪時透露,百度將很快在美國測試無人駕駛汽車,並希望在2018年前推出一款可商用的車型。

百度無人駕駛車專案於2013年起步,由百度研究院主導研發,其技術核心是“百度汽車大腦”,包括高精度地圖、定位、感知、智慧決策與控制四大模組。2014年7月,百度首次對外證實啟動“百度無人駕駛汽車”研發計畫。

2015年12月10日,百度宣佈,百度無人駕駛車國內首次實現城市、環路及高速道路混合路況下的全自動駕駛。百度公佈的路測路線顯示,百度無人駕駛車從位於北京中關村軟體園的百度大廈附近出發,駛入G7京新高速公路,經五環路,抵達奧林匹克森林公園,並隨後按原路線返回。百度無人駕駛車往返全程均實現自動駕駛,並實現了多次跟車減速、變道、超車、上下匝道、調頭等複雜駕駛動作,完成了進入高速(匯入車流)到駛出高速(離開車流)的不同道路場景的切換。測試時最高速度達到100公里/小時。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

※試算大陸海運運費!

桃園綠能績效佳,電動車補助高、寺廟積極認購綠電

桃園市近兩年來大力推行各項綠能政策,已小有所成。目前,全市有2.7萬輛電動機車,穩坐台灣六都第一;全台今年綠電認購大戶前兩名,也都是位於桃園的寺廟。

桃園市環保局統計,桃園市目前有2.7萬輛電動機車,相當於每年減排7,452公噸的二氧化碳以及4,023公斤的PM2.5,同時種植65萬棵樹木。目前全桃園市有超過110萬輛機車,電動機車比例僅有2.42%,桃園市今年繼續提供新購電動機車新台幣1.5萬元,加上經濟部工業局的1萬元補助,最高補助金達2.5萬,希望能繼續推動民眾替換機車,進一步提高減碳量。

同時,騎乘電動機車滿三年者,環保局推出更換鋰電池最高新台幣4,000元補助,而合法立案場所設置充電站最高也可享有1萬元補助。環保局還開發手機APP,結合GPS定位系統,幫助使用者快速找到充電站,加強民眾改用電動車的意願。

神明也愛綠電,成全台認購最大手

今年台灣綠電認購量最高的單位,是位於桃園的慈護宮,認購30萬度電;第二名則是桃園中壢仁海宮,認購10萬度電。慈護宮主委劉新發表示,廟宇是台灣民眾生活中心,加上有24小時全年不滅的「光明燈」,用電需求量大,因此除了改用更省電的LED燈之外,也積極參與認購綠電,為環保盡一份心力。

目前台電提出的綠電認購附加費率為每度電新台幣1.06元,最低綠電認購門檻為100度;只要認購最低單位的綠電,就等同於多種五棵樹。

除了寺廟之外,桃園地區也有長榮航空、東龍興業、萬海航運、科德寶遠東等企業加入認購綠電,總認購度數超過百萬度。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

※專營大陸快遞台灣服務

台灣快遞大陸的貨運公司有哪些呢?

特斯拉將在蘇州成立生產基地?

作為全球最具潛力的電動車市場之一,特斯拉(Tesla)也持續傳出有在中國設置本土化生產基地的消息。日前中國流出一份文件,內容是關於蘇州召開會議討論特斯拉汽車項目入主蘇州的相關事宜,似乎代表特斯拉已選定了地點。

根據中國網路媒體《第一電動網》所獲得的資訊,蘇州相關政府部門於3月13日召開專題會議,研究協調特斯拉的汽車生產工廠成立相關事宜。通知內容如下:

經研究,市委副書記、常務副市長周偉強定於3月13日(星期天)上午9:00,在市政府1號會議室召開專題會議,研究協調特斯拉汽車項目落戶蘇州的相關事宜。會議主要有三項議程:一是請商務局通報該項目整體情況;二是請各有關地區匯報爭取該項目落地的相關意見和措施(如土地供應等方面,書面材料請帶5份至會);三是市各有關部門就推進該項目提出有關建議(項目情況見附件)。

請各地政府(管委會)、各有關部門主要領導或分管領導準時參會(可攜帶具體業務負責同志),特此通知。

據了解,特斯拉高層於3月17、18日拜訪蘇州進行實地考察,但《第一電動網》對此事進行深入訪談,包括蘇州商務局等相關人士均沒有正面回應。特斯拉近來一直被傳言將在中國尋找合資夥伴並設立工廠,也有許多中國公司主動表達合作意願,不過特斯拉對於在中國設廠一事一直沒有明確的回答。

台灣特斯拉汽車公司日前正式登記成案,特斯拉在中國的動向也值得關切。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

台灣海運大陸貨務運送流程

兩岸物流進出口一站式服務

寶馬i品牌第三款車型i5將會是一台電動車

據悉,寶馬高層最新證實,i品牌的第三款車型i5將會是一台電動車,而非之前所傳聞的燃料電池車或者是插電式混合動力車。不過他也表示,i5除了純電動版本,也會像i3那樣擁有一款增程車型。


寶馬全新i5假想圖

至於i5的車身形式目前仍然是一個迷,但從各方消息以及寶馬高層的暗示來看,這是一台家庭定位的車型,所以它選擇SUV造型的可能性應該是最大的。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包”嚨底家”

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

小三通海運與一般國際貿易有何不同?

小三通快遞通關作業有哪些?