ugrás a tartalomhoz

Pentaho/Spoon-al lehet szerintetek ilyet?

ecrazor · 2015. Jan. 11. (V), 15.35
Hello,

Persze biztos lehet, na de hogyan. :-) Van egy CSV adatbázisom amiben termékek vannak, és a kategória így lett megadva:

|-----------------|--------|--------------|-----|
| Árú megnevezése | Egység | Gyűjtőcsomag | ... |
|-----------------|--------|--------------|-----|
| Kategória név 1 | NULL   | NULL         | NUL | <--- kategória 1
| Termék név 1    | 10 db  | 1234         | ... |
| Termék név 2    | 10 db  | 1234         | ... |
| Termék név 3    | 10 db  | 1234         | ... |
| Termék név 4    | 10 db  | 1234         | ... |
| Kategória név 2 | NULL   | NULL         | NUL | <--- kategória 2
| Termék név 1    | 10 db  | 1234         | ... |
| ............... | ...... | ............ | ... |
A cél az lenne, hogy ilyen formába tudjam átalakítani:

|-----------------|------------------|--------|--------------|-----|
| Árú megnevezése | Kategória        | Egység | Gyűjtőcsomag | ... |
|-----------------|------------------|------- |--------------|-----|
| Termék név 1    | Kategória név 1  | 10 db  | 1234         | ... |
| Termék név 2    | Kategória név 1  | 10 db  | 1234         | ... |
| Termék név 3    | Kategória név 1  | 10 db  | 1234         | ... |
| Termék név 4    | Kategória név 1  | 10 db  | 1234         | ... |
| Termék név 1    | Kategória név 2  | 10 db  | 1234         | ... |
| ............... | ................ | .......|............. | ... |
Elsőnek azzal próbálkoztam, hogy csináltam két "Filter rows" szűrést egy "Transformation"-ben, egyiket a kategóriára, másikat pedig a termékre, így született egy kategória listám és egy termék adatbázisom, de gondba voltam azzal hogyan lehetne ezt összeilleszteni, ahogy az utóbbi ábrán.

Kerestem ez után, de nem nagyon sikerült értelmes találatot találni (lehet rosszul közelítem meg a dolgot). Szerintetek?
 
1

program

Pepita · 2015. Jan. 11. (V), 18.03
Írj egy egyszerű programot, ami generál egy jó csv-t.
Vagy inkább kettőt, a kategória külön táblába való.
2

Sikerült megoldani házon belül

ecrazor · 2015. Jan. 11. (V), 18.44
Minél jobban megismerem ezt a programot, annál jobban megszeretem.
Lehet használni benne Script-eket, amivel megtudtam egyszerűen oldani a problémát:

if (row[0] != "" && row[1] == null && row[2] == null && row[3] == null) {
	var last_category = row[0];
	// todo: később rá kell rakni egy filtert, hogy az üres sorokat ne
	// tartalmazza az adatbázis
	for (var i=0; i < getInputRowMeta().size(); i++) {
		row[i] = null;
	}
}
else {
	row[2] = last_category;
}
3

Igen

janoszen · 2015. Jan. 11. (V), 21.31
Latom mar megoldottad, de ha esetleg a Spoonnal beleszaladsz valamibe, keress meg, eleg sokat dolgozom vele.
4

Azt hiszem beleszaladtam :)

ecrazor · 2015. Jan. 12. (H), 11.21
Köszi! Lehet elég standard dolog, de van 8 XLS fájlom és ugyan az oszlopok nevei megegyeznek, de megesik hogy a másik XLS-ben máshol vagy egyáltalán nincs benne az az oszlop.

Na most megcsináltam, hogy a "Microsoft Excel input"-al betöltöm a könyvtárban lévő összes XLS-t, aztán beállítom a Sheet-et (ez nem változik, mindenhol ugyanaz), majd lekérem a "Fields"-eket. Itt nagytakarítást kellett végezni, letisztítottam a _1, _2, .. végződésű elemeket és csak azok maradtak bent, amelyek előfordulhatnak.

Nos a dolog működik is részben, mert az XLS-t ugyan betölti, de azzal teljesen összelehet zavarni ha mondjuk egy másik XLS-ben sorrendileg más helyen van az oszlop.

Azt meglehet-e valahogy csinálni (scriptelés nélkül), hogy párosítsa az oszlopokat fejléc név alapján?
5

Nem tudom

janoszen · 2015. Jan. 13. (K), 08.54
Nem biztos, hogy tudom, mit szeretnel pontosan, de ha gondolod, dobd at a KTR fajlodat. Ha jol ertem, akkor van X darab bemeneti forrasod es ezeket szeretned osszefesulni, egy streambe, igaz?

Namost, erre ket mod van. Az egyik, hogy csak siman osszefesulod, ez esetben leteszel egy dummy node-ot es abba behuzod az osszes bemenetet. A masik, hogy az append streams parancsot hasznalod. Ahhoz hogy ez mukodjon viszont kell az, hogy az osszes streamedben ugyanazok a mezok legyenek ugyanolyan sorrendben es azonos adattipussal.

Ha ez nem adott, akkor van egy select values parancs, illetve az add constants parancs, amivel ki tudod egesziteni a mezoket.

Remelem, segitett. Ha nem, talalj be Skypeon, screen sharinggel megnezem a transzformaciodat.