Compare commits

...

8 Commits

Author SHA1 Message Date
scronge
40d4200410
Merge b471f2179a into 3c1b4e752d 2024-11-13 13:39:15 -06:00
Boris Verkhovskiy
3c1b4e752d [wolfram/es] fix filename 2024-11-13 09:38:11 -07:00
Boris Verkhovskiy
be43ada53d [wikitext/en] render markdown tables 2024-11-13 09:28:16 -07:00
David Shaked
33e459864c
[java/en] Fix typo (#5182)
This commit fixes a very minor typo in the `java` (English) tutorial.
2024-11-13 09:19:07 -07:00
FireIsGood
54fbf0a948
[ruby/en] Reflow comments (#5180) 2024-11-13 09:18:32 -07:00
Boris Verkhovskiy
fa95b37b6f Fix filename in frontmatter 2024-11-13 08:04:47 -07:00
scronge
b471f2179a
Merge pull request #1 from scronge/scronge-patch-1
[spark/en] Spark Tutorial
2024-11-10 21:33:53 -06:00
scronge
5ae6d4c656
Create spark.html.markdown
This update refines the Spark tutorial to fully align with the established contribution and style guidelines.
2024-11-10 21:32:08 -06:00
34 changed files with 162 additions and 52 deletions

View File

@ -1,7 +1,7 @@
---
language: HTML
lang: ar-ar
filename: learnhtml-tf.html
filename: learnhtml-tf.txt
contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
translators:

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: html-ca.md
filename: html-ca.txt
contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
translators:

View File

@ -1,6 +1,6 @@
---
language: HQ9+
filename: hq9+-de.html
filename: hq9+-de.txt
contributors:
- ["Alexey Nazaroff", "https://github.com/rogaven"]
translators:

View File

@ -4,7 +4,7 @@ contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
translators:
- ["Dennis Keller", "https://github.com/denniskeller"]
filename: learnhtml-de.html
filename: learnhtml-de.txt
lang: de-de
---

View File

@ -6,7 +6,6 @@ contributors:
- ["Divay Prakash", "https://github.com/divayprakash"]
translators:
- ["caminsha", "https://github.com/caminsha"]
filename: processing-de.md
lang: de-de
---

View File

@ -1,6 +1,6 @@
---
category: framework
filename: learnshutit-de.html
filename: learnshutit-de.py
framework: ShutIt
contributors:
- ["Ian Miell", "http://ian.meirionconsulting.tk"]

View File

@ -2,7 +2,7 @@
language: CSS
contributors:
- ["Kostas Bariotis", "http://kostasbariotis.com"]
filename: css-gr.html.markdown
filename: css-gr.css
lang: el-gr
---

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: learnhtml-gr.html
filename: learnhtml-gr.txt
contributors:
- ["Dimitri Kokkonis", "https://github.com/kokkonisd"]
lang: el-gr

View File

@ -1,6 +1,6 @@
---
language: JSON
filename: json-gr.html.markdown
filename: json-gr.json
contributors:
- ["Anna Harren", "https://github.com/iirelu"]
- ["Marco Scannadinari", "https://github.com/marcoms"]

View File

@ -4,7 +4,7 @@ contributors:
- ["Joao Pedrosa", "https://github.com/jpedrosa/"]
translators:
- ["Jorge Antonio Atempa", "http://www.twitter.com/atempa09"]
filename: dart-es.md
filename: dart-es.dart
lang: es-es
---

View File

@ -5,7 +5,7 @@ contributors:
translators:
- ["Jhoon Saravia", "https://github.com/jhoon"]
lang: es-es
filename: groovy-es.html
filename: groovy-es.groovy
---
Groovy - Un lenguaje dinámico para la plataforma Java. [Leer más aquí](http://www.groovy-lang.org/).

View File

@ -4,7 +4,7 @@ contributors:
- ["Adit Bhargava", "http://adit.io"]
translators:
- ["Jorge Antonio Atempa", "http://www.twitter.com/atempa09"]
filename: haskell-es.md
filename: haskell-es.hs
lang: es-es
---

View File

@ -1,6 +1,6 @@
---
language: HQ9+
filename: hq9+-es.html
filename: hq9+-es.txt
contributors:
- ["Alexey Nazaroff", "https://github.com/rogaven"]
translators:

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: learnhtml-es.html
filename: learnhtml-es.txt
contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
translators:

View File

@ -3,7 +3,7 @@ language: Wolfram
lang: es-es
contributors:
- ["Daniel Caballero", "http://github.com/danielcaballero796/"]
filename: learnwolfram-es.md
filename: learnwolfram-es.nb
---
Wolfram es un lenguaje subyacente originalmente utilizado en Mathematica, pero ahora esta disponible para su uso en múltiples contextos.

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: learnhtml-fr.html
filename: learnhtml-fr.txt
contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
lang: fr-fr

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: learnhtml-he.html
filename: learnhtml-he.txt
contributors:
- ['Christophe THOMAS', 'https://github.com/WinChris']
translators:

View File

@ -1,6 +1,6 @@
---
language: HQ9+
filename: hq9+.html
filename: hq9+.txt
contributors:
- ["Alexey Nazaroff", "https://github.com/rogaven"]
---

View File

@ -1,6 +1,6 @@
---
language: HQ9+
filename: hq9+-id.html
filename: hq9+-id.txt
contributors:
- ["Alexey Nazaroff", "https://github.com/rogaven"]
translators:

View File

@ -1,6 +1,6 @@
---
language: reStructuredText (RST)
filename: rst-id.html
filename: rst-id.rst
contributors:
- ["DamienVGN", "https://github.com/martin-damien"]
- ["Andre Polykanine", "https://github.com/Oire"]

View File

@ -3,7 +3,7 @@ language: Rust
contributors:
- ["Carlo Milanesi", "http://github.com/carlomilanesi"]
lang: it-it
filename: rust-it.html.markdown
filename: rust-it.rs
---
Rust è un linguaggio di programmazione sviluppato da Mozilla Research.

View File

@ -225,7 +225,7 @@ public class LearnJava {
String fooString = "My String Is Here!";
// Text blocks
vat textBlock = """
var textBlock = """
This is a <Text Block> in Java
""";

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: learnhtml-nl.html
filename: learnhtml-nl.txt
contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
translators:

View File

@ -5,7 +5,7 @@ contributors:
- ["Mathias Bynens", "http://mathiasbynens.be/"]
translators:
- ["Petru Dimitriu", "http://petru-dimitriu.github.io"]
filename: bf-ro.html
filename: bf-ro.bf
lang: ro-ro
---

View File

@ -5,7 +5,7 @@ contributors:
translators:
- ["Petru Dimitriu", "http://petru-dimitriu.github.io"]
lang: ro-ro
filename: haskell-ro.html
filename: haskell-ro.hs
---
Haskell este un limbaj de programare practic, pur funcțional.

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: learnhtml-ru.html
filename: learnhtml-ru.txt
contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
translators:

View File

@ -91,7 +91,7 @@ false.class #=> FalseClass
2 <= 2 #=> true
2 >= 2 #=> true
# Combined comparison operator (returns `1` when the first argument is greater,
# Combined comparison operator (returns `1` when the first argument is greater,
# `-1` when the second argument is greater, and `0` otherwise)
1 <=> 10 #=> -1 (1 < 10)
10 <=> 1 #=> 1 (10 > 1)
@ -259,8 +259,8 @@ else
'else, also optional'
end
# If a condition controls invocation of a single statement rather than a block of code
# you can use postfix-if notation
# If a condition controls invocation of a single statement rather than a block
# of code you can use postfix-if notation
warnings = ['Patronimic is missing', 'Address too short']
puts("Some warnings occurred:\n" + warnings.join("\n")) if !warnings.empty?
@ -268,7 +268,7 @@ puts("Some warnings occurred:\n" + warnings.join("\n")) if !warnings.empty?
puts("Some warnings occurred:\n" + warnings.join("\n")) unless warnings.empty?
# Loops
# In Ruby, traditional `for` loops aren't very common. Instead, these
# In Ruby, traditional `for` loops aren't very common. Instead, these
# basic loops are implemented using enumerable, which hinges on `each`.
(1..5).each do |counter|
puts "iteration #{counter}"
@ -279,9 +279,10 @@ for counter in 1..5
puts "iteration #{counter}"
end
# The `do |variable| ... end` construct above is called a 'block'. Blocks are similar
# to lambdas, anonymous functions or closures in other programming languages. They can
# be passed around as objects, called, or attached as methods.
# The `do |variable| ... end` construct above is called a 'block'. Blocks are
# similar to lambdas, anonymous functions or closures in other programming
# languages. They can be passed around as objects, called, or attached as
# methods.
#
# The 'each' method of a range runs the block once for each element of the range.
# The block is passed a counter as a parameter.
@ -415,19 +416,20 @@ surround { puts 'hello world' }
#=> hello world
#=> }
# Blocks can be converted into a 'proc' object, which wraps the block
# and allows it to be passed to another method, bound to a different scope,
# or manipulated otherwise. This is most common in method parameter lists,
# where you frequently see a trailing '&block' parameter that will accept
# the block, if one is given, and convert it to a 'Proc'. The naming here is
# convention; it would work just as well with '&pineapple'.
# Blocks can be converted into a 'proc' object, which wraps the block and allows
# it to be passed to another method, bound to a different scope, or manipulated
# otherwise. This is most common in method parameter lists, where you frequently
# see a trailing '&block' parameter that will accept the block, if one is given,
# and convert it to a 'Proc'. The naming here is convention; it would work just
# as well with '&pineapple'.
def guests(&block)
block.class #=> Proc
block.call(4)
end
# The 'call' method on the Proc is similar to calling 'yield' when a block is
# present. The arguments passed to 'call' will be forwarded to the block as arguments.
# The 'call' method on the Proc is similar to calling 'yield' when a block is
# present. The arguments passed to 'call' will be forwarded to the block as
# arguments.
guests { |n| "You have #{n} guests." }
# => "You have 4 guests."
@ -443,7 +445,7 @@ end
upcased = ['Watch', 'these', 'words', 'get', 'upcased'].map(&:upcase)
puts upcased
#=> ["WATCH", "THESE", "WORDS", "GET", "UPCASED"]
sum = [1, 2, 3, 4, 5].reduce(&:+)
puts sum
#=> 15
@ -472,7 +474,7 @@ def best(first, second, third, *others)
puts "There were #{others.count} other participants."
end
best *ranked_competitors
best *ranked_competitors
#=> Winners are John, Sally, and Dingus.
#=> There were 2 other participants.
@ -480,9 +482,9 @@ best *ranked_competitors
5.even? #=> false
5.odd? #=> true
# By convention, if a method name ends with an exclamation mark, it does something destructive
# like mutate the receiver. Many methods have a ! version to make a change, and
# a non-! version to just return a new changed version.
# By convention, if a method name ends with an exclamation mark, it does
# something destructive like mutate the receiver. Many methods have a ! version
# to make a change, and a non-! version to just return a new changed version.
company_name = "Dunder Mifflin"
company_name.upcase #=> "DUNDER MIFFLIN"
company_name #=> "Dunder Mifflin"
@ -516,7 +518,8 @@ class Human
@name
end
# The above functionality can be encapsulated using the attr_accessor method as follows.
# The above functionality can be encapsulated using the attr_accessor method
# as follows.
attr_accessor :name
# Getter/setter methods can also be created individually like this.

View File

@ -3,7 +3,7 @@ category: framework
framework: ShutIt
contributors:
- ["Ian Miell", "http://ian.meirionconsulting.tk"]
filename: learnshutit.html
filename: learnshutit.py
---
## ShutIt

106
spark.html.markdown Normal file
View File

@ -0,0 +1,106 @@
---
language: Spark
category: tool
tool: Spark
filename: learnspark-en.spark
contributors:
- ["Scronge", "https://github.com/Scronge"]
---
[Spark](https://spark.apache.org/) is an open-source distributed data processing framework that enables large-scale data processing across clusters. This guide covers the basics of **Apache Spark** using PySpark, the Python API.
```python
# Setting Up Spark
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("RealWorldExampleApp") \
.getOrCreate()
# Working with Larger DataFrames
# Sample data for a retail dataset with multiple columns for complex queries
data = [
("Alice", "Electronics", 30, 200),
("Bob", "Clothing", 40, 150),
("Carol", "Electronics", 25, 300),
("Dave", "Home Goods", 35, 100),
("Eve", "Clothing", 28, 80),
("Frank", "Home Goods", 40, 120)
]
columns = ["Name", "Category", "Age", "PurchaseAmount"]
df = spark.createDataFrame(data, columns)
df.show()
# +-----+-----------+---+--------------+
# | Name| Category|Age|PurchaseAmount|
# +-----+-----------+---+--------------+
# |Alice|Electronics| 30| 200|
# | Bob| Clothing| 40| 150|
# |Carol|Electronics| 25| 300|
# | Dave| Home Goods| 35| 100|
# | Eve| Clothing| 28| 80|
# |Frank| Home Goods| 40| 120|
# +-----+-----------+---+--------------+
# Transformations and Actions
# Filtering data to select customers over 30 with purchases above $100
filtered_df = df.filter((df.Age > 30) & (df.PurchaseAmount > 100))
filtered_df.show()
# +-----+-----------+---+--------------+
# | Name| Category|Age|PurchaseAmount|
# +-----+-----------+---+--------------+
# | Bob| Clothing| 40| 150|
# |Frank| Home Goods| 40| 120|
# +-----+-----------+---+--------------+
# Grouping and Aggregations
# Calculate total purchases by category
category_totals = df.groupBy("Category").sum("PurchaseAmount")
category_totals.show()
# +-----------+------------------+
# | Category|sum(PurchaseAmount)|
# +-----------+------------------+
# |Electronics| 500|
# | Clothing| 230|
# | Home Goods| 220|
# +-----------+------------------+
# SQL Queries
# Registering DataFrame as a SQL temporary view
df.createOrReplaceTempView("customers")
high_spenders = spark.sql("SELECT Name, Category, PurchaseAmount FROM customers WHERE PurchaseAmount > 100")
high_spenders.show()
# +-----+-----------+--------------+
# | Name| Category|PurchaseAmount|
# +-----+-----------+--------------+
# |Alice|Electronics| 200|
# | Bob| Clothing| 150|
# |Carol|Electronics| 300|
# |Frank| Home Goods| 120|
# +-----+-----------+--------------+
# Reading and Writing Files
# Reading from CSV with additional options
csv_df = spark.read.csv("path/to/large_retail_data.csv", header=True, inferSchema=True, sep=",")
csv_df.show(5) # Display only first 5 rows for preview
# Writing DataFrame to Parquet format for optimized storage and access
df.write.parquet("output/retail_data")
# RDD Basics
# Creating an RDD and performing complex transformations
sales_data = [(1, 100), (2, 150), (3, 200), (4, 250)]
rdd = spark.sparkContext.parallelize(sales_data)
# Transformations to calculate discounts for each sale
discounted_sales_rdd = rdd.map(lambda x: (x[0], x[1] * 0.9))
print(discounted_sales_rdd.collect())
# Output: [(1, 90.0), (2, 135.0), (3, 180.0), (4, 225.0)]
# Ending the Spark Session
spark.stop()

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: learnhtml-vi.html
filename: learnhtml-vi.txt
contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
translators:

View File

@ -58,6 +58,7 @@ The syntax for tables is [very complicated](https://en.wikipedia.org/wiki/Help:T
```
which renders to
| **column title A** | **column title B** |
|---|---|
| cell A1 | cell B1 |
@ -120,6 +121,7 @@ If a word is interrupted by a link, it is "blended" into the link. For example,
To suppress this behavior, use `<nowiki>`. For example, `[[micro-]]<nowiki />second` renders to [micro-](https://en.wikipedia.org/wiki/micro-)second.
There are three kinds of external linking. The third kind is preferred:
| wikitext | renders to |
|----|----|
| `https://www.wikipedia.org` | [https://www.wikipedia.org](https://www.wikipedia.org) |

View File

@ -3,7 +3,7 @@ category: framework
framework: AngularJS
contributors:
- ["Walter Cordero", "http://waltercordero.com"]
filename: learnangular-cn.html
filename: learnangular-cn.txt
translators:
- ["Jiang Haiyun", "http://www.atjiang.com"]
lang: zh-cn

View File

@ -1,6 +1,6 @@
---
language: HTML
filename: learnhtml-cn.html
filename: learnhtml-cn.txt
contributors:
- ["Christophe THOMAS", "https://github.com/WinChris"]
translators:

View File

@ -5,7 +5,7 @@ contributors:
- ["David Pedersen", "http://lonelyproton.com/"]
- ["James Baker", "http://www.jbaker.io/"]
- ["Leo Zovic", "http://langnostic.inaimathi.ca/"]
filename: standard-ml-cn.html
filename: standard-ml-cn.sml
translators:
- ["Buqian Zheng", "https://github.com/zhengbuqian"]
lang: zh-cn